python+mysql实现简单的web程序


Posted in Python onSeptember 11, 2014

这次要为我的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

Python 相关文章推荐
Python解析xml中dom元素的方法
Mar 12 Python
利用Python命令行传递实例化对象的方法
Nov 02 Python
python fabric实现远程部署
Jan 05 Python
AI人工智能 Python实现人机对话
Nov 13 Python
Python subprocess模块常见用法分析
Jun 12 Python
Windows下PyCharm安装图文教程
Aug 27 Python
python pyenv多版本管理工具的使用
Dec 23 Python
使用Python串口实时显示数据并绘图的例子
Dec 26 Python
在tensorflow中设置保存checkpoint的最大数量实例
Jan 21 Python
python如何绘制疫情图
Sep 16 Python
Python爬取股票信息,并可视化数据的示例
Sep 26 Python
PyTorch梯度裁剪避免训练loss nan的操作
May 24 Python
一个超级简单的python web程序
Sep 11 #Python
python的Template使用指南
Sep 11 #Python
Python基础之函数用法实例详解
Sep 10 #Python
Python迭代用法实例教程
Sep 08 #Python
Python切片用法实例教程
Sep 08 #Python
Python常用模块用法分析
Sep 08 #Python
python实现斐波那契递归函数的方法
Sep 08 #Python
You might like
PHP 上传文件大小限制
2009/07/05 PHP
CI框架网页缓存简单用法分析
2018/12/26 PHP
PHP+Ajax简单get验证操作示例
2019/03/02 PHP
Laravel开启跨域请求的方法
2019/10/13 PHP
laravel框架邮箱认证实现方法详解
2019/11/22 PHP
求解开jscript.encode代码的asp函数
2007/02/28 Javascript
JQUERY复选框CHECKBOX全选,取消全选
2008/08/30 Javascript
关于javascript 回调函数中变量作用域的讨论
2009/09/11 Javascript
javaScript实现浮点数转十六进制字符
2013/10/29 Javascript
jquery获得option的值和对option进行操作
2013/12/13 Javascript
jQuery实现多级下拉菜单jDropMenu的方法
2015/08/28 Javascript
12个超实用的JQuery代码片段
2015/11/02 Javascript
基于d3.js实现实时刷新的折线图
2016/08/03 Javascript
前端开发之CSS原理详解
2017/03/11 Javascript
Node.js服务器开启Gzip压缩教程
2017/08/11 Javascript
关于vue中 $emit的用法详解
2018/04/12 Javascript
记录vue项目中遇到的一点小问题
2019/05/14 Javascript
layui select 禁止点击的实现方法
2019/09/05 Javascript
[06:57]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD 选手采访
2021/03/11 DOTA
详解python中字典的循环遍历的两种方式
2017/02/07 Python
Linux下远程连接Jupyter+pyspark部署教程
2019/06/21 Python
Python读取配置文件(config.ini)以及写入配置文件
2020/04/08 Python
python 绘制场景热力图的示例
2020/09/23 Python
利用CSS3实现进度条的两种姿势详解
2017/03/21 HTML / CSS
HTML5 placeholder属性详解
2016/06/22 HTML / CSS
英国健身仓库:Bodybuilding Warehouse
2019/03/06 全球购物
编写类String 的构造函数、析构函数和赋值函数
2012/09/09 面试题
刑事代理授权委托书
2014/09/17 职场文书
《微笑着面对生活》优秀演讲稿范文
2014/09/23 职场文书
教代会闭幕词
2015/01/28 职场文书
城管年度个人总结
2015/02/28 职场文书
2015纪念九一八事变84周年演讲稿
2015/03/19 职场文书
2016年度基层党建工作公开承诺书
2016/03/25 职场文书
使用golang编写一个并发工作队列
2021/05/08 Golang
MySql学习笔记之事务隔离级别详解
2021/05/12 MySQL
golang连接MySQl使用sqlx库
2022/04/14 Golang