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中wx将图标显示在右下角的脚本代码
Mar 08 Python
详解Python中的__init__和__new__
Mar 12 Python
Python封装shell命令实例分析
May 05 Python
Python实现求最大公约数及判断素数的方法
May 26 Python
对PyTorch torch.stack的实例讲解
Jul 30 Python
用Python逐行分析文件方法
Jan 28 Python
python实现一个简单的udp通信的示例代码
Feb 01 Python
python实现移位加密和解密
Mar 22 Python
Python基于OpenCV实现人脸检测并保存
Jul 23 Python
python之PyQt按钮右键菜单功能的实现代码
Aug 17 Python
Django调用百度AI接口实现人脸注册登录代码实例
Apr 23 Python
Python logging模块原理解析及应用
Aug 13 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读取mysql乱码,用set names XXX解决的原理分享
2011/12/29 PHP
php获取根域名方法汇总
2014/10/28 PHP
PHP比你想象的好得多
2014/11/27 PHP
Zend Framework分页类用法详解
2016/03/22 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
2017/09/20 PHP
php防止表单重复提交实例讲解
2019/02/11 PHP
JQuery jsonp 使用示例代码
2009/08/12 Javascript
javascript 检测浏览器类型和版本的代码
2009/09/15 Javascript
Javascript面向对象编程(三) 非构造函数的继承
2011/08/28 Javascript
JQ获取动态加载的图片大小的正确方法分享
2013/11/08 Javascript
tangram框架响应式加载图片方法
2013/11/21 Javascript
jquery1.10给新增元素绑定事件的方法
2014/03/06 Javascript
实现React单页应用的方法详解
2016/08/02 Javascript
Javascript Function.prototype.bind详细分析
2016/12/29 Javascript
EasyUI学习之Combobox下拉列表(1)
2016/12/29 Javascript
Angular2使用Angular CLI快速搭建工程(一)
2017/05/21 Javascript
通过封装scroll.js 获取滚动条的值
2018/07/13 Javascript
实例分析Array.from(arr)与[...arr]到底有何不同
2019/04/09 Javascript
深入理解javascript prototype的相关知识
2019/09/19 Javascript
[00:52]DOTA2齐天大圣预告片
2016/08/13 DOTA
进一步了解Python中的XML 工具
2015/04/13 Python
Python 在函数上添加包装器
2020/07/28 Python
Python实现一个简单的递归下降分析器
2020/08/01 Python
Python正则re模块使用步骤及原理解析
2020/08/18 Python
pytorch简介
2020/11/11 Python
PyCharm2020.3.2安装超详细教程
2021/02/08 Python
菲律宾票务网站:StubHub菲律宾
2018/04/21 全球购物
有机童装:Toby Tiger
2018/05/23 全球购物
初中化学教学反思
2014/01/23 职场文书
信息科学与技术专业求职信范文
2014/02/20 职场文书
潘婷洗发水广告词
2014/03/14 职场文书
表彰会主持词
2014/03/26 职场文书
党的群众路线学习笔记
2014/11/06 职场文书
法制教育讲座心得体会
2016/01/14 职场文书
初中物理教学反思
2016/02/19 职场文书
导游词之太湖
2019/10/08 职场文书