python+mysql实现简单的web程序
作者:hebedich 发布时间:2024-01-15 12:31:58
这次要为我的python程序加上数据库,主要是实现从mysql中查询出数据并在页面上显示出来。
首先是mysql的配置文件config.py
host="127.0.0.1"
user="root"
password=""
charset="utf8"
database="service"
port=3306
然后是从数据库中读取数据的aService.py
import MySQLdb
import sys
import config
class AService(object):
def getA(self,id):
conn = MySQLdb.connect(host=config.host,user=config.user,passwd=config.password,port=config.port,db=config.database,charset=config.charset)
result=[]
try:
cursor = conn.cursor();
cursor.execute("select id,code,title from test_a where id='%d'"%(id))
result = cursor.fetchone()
except Exception,e:
print "System error: ",e
result = "error"
finally:
cursor.close()
conn.close()
return result
其中cursor.execute()返回是执行语句影响的行数,刚开始我以为是返回的结果,导致绕了很远的弯路。真正为返回结果的是cursor.fechone(),表示获取执行结果的第一条。同时还有cursor.fetchall(),表示获取所有结果。如果获取了多个字段的话,结果为数组类型,按照查询结果的字段顺序排序。
MySQLdb是python与数据库连接的一个模块。这个模块并不是本来就存在的,需要下载并安装到python得目录下才行。MAC安装这个模块有个奇怪的要求,就是必须在本机安装了mysql,即便实际上程序使用的外部的数据库。在已安装mysql的前提下,发现安装mysqldb错误,并报了mysql目录找不到错误时,可用以下方法解决:
在用户的home目录下vi .profile
加入 export PATH=$PATH:/user/local/mysql/bin,退出并保存
再执行source ./.profile命令并退出终端
这样过后,在重新安装mysqldb应该就不会报找不到mysql目录的错误了。
接下来是主程序hello.py
import web
import aService
import sys
urls = ("/Service/A","hello")
app = web.application(urls,globals())
class hello:
def GET(self):
mservice = aService.AService()
result = mservice.getA(1)
json = ""
json +="{"
json +="'id':"+str(result[0])+","
json +="'code':'"+result[1]+"',"
json +="'title':'"+result[2]+"'"
json +="}"
return json;
if __name__=="__main__":
app.run()
这个部分创建了一个访问路径/Service/A,该路径对应的服务是hello类提供的。在这个类的get方法中调用了aService的getA方法。在页面上显示出一个json格式的文本。执行步骤如下
终端:python hello.py 8080
浏览器:localhost:8080/Service/A


猜你喜欢
- 概述在实践中,我们发现上述的代码重复率非常高,新增和修改都费力,并且是没技术含量的体力活。 但又必须要这样做,不适合以公共函数的形式重用,为
- 简单说下原理,把显示的图片的<img>标签 和上传文件的 <input> 标签放在同一个div下,设置<img
- 如下所示:import tkinterfrom tkinter import ttk #导入内部包win=tkinter.Tk()tree=
- 深度学习中对于网络的训练是参数更新的过程,需要注意一种情况就是输入数据未做归一化时,如果前向传播结果已经是[0,0,0,1,0,0,0,0]
- 简单计数器代码如下所示:<% Set fs = CreateObject("Scri
- 效果图实例代码今天我们要用微信小程序实现2048小游戏,效果图如上面所示。游戏的规则很简单,你需要控制所有方块向同一个方向运动,两个相同数字
- 现如今,各个国家交流密切,通过翻译使我们打破了语言壁垒,而翻译在互联网上的存在也尤为普遍。python中执行翻译操作的包是translate
- 前言Sphinx是一款支持多种编程语言的文档生成工具,在python项目开发过程中,可以帮助开发者根据需求生成相应的说明文档,拿今天我们就基
- 数据库在高并发的场景下使用外键约束会有锁问题并且使用外键会增加运维成本,所以很多公司都规定生产环境的数据库禁止使用外键。那么不使用外键约束的
- 一、描述在利用django做网络开发的时候我们会遇到一个问题就是,我们建立了多张数据表,但是多张数据表中的内容是不一样的,但是之间有着联系比
- 引入为什么要有垃圾回收机制Python中的垃圾回收机制简称(GC),我们在程序的运行中会产生大量的变量用于保存数据,而有时候有些变量已经没有
- SQL语言是一门简单易学却又功能强大的语言,它能让你快速上手并写出比较复杂的查询语句。但对于大多数开发者来说,使用SQL查询数据库并没有一个
- package dao;import org.hibernate.HibernateException;import org.hiberna
- 微软在12月22日早上发布新的安全通告证实,一处远程执行代码漏洞影响到了整个SQL Server产品线。该漏洞的入侵代码在两周前已经被公布在
- 5.1.5 表单验证 表单作为 HTML 最重要的一个组成部分,几乎在每个网页上
- 1.聚合运算(1)使用内置的聚合运算函数进行计算1>内置的聚合运算函数sum(),mean(),max(),min(),size(),
- 1 简介kepler.gl作为开源地理空间数据可视化神器,也一直处于活跃的迭代开发状态下。而在前不久,kepler.gl正式发布了其2.4.
- 1.删除所有的目录,只保留datasharebin2.删除BIN下面除以下三个文件之外的所有文件:libmysql.dll(MYSQL5中的
- 昨天美国雅虎正式宣布网站首页的新版,这也算互联网一件大事,尤其是对设计的朋友们。而且现在的美国雅虎的情况也不是很好的情况下有大刀阔斧的进行改
- 目前可以实现简单的计算。计算前请重置,设计的时候默认数字是0,学了半天就做出来个这么个结果,bug不少。 python3.5 + PyQt5