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 相关文章推荐
在Linux上安装Python的Flask框架和创建第一个app实例的教程
Mar 30 Python
Python实现豆瓣图片下载的方法
May 25 Python
Python多进程同步简单实现代码
Apr 27 Python
Python正则表达式教程之二:捕获篇
Mar 02 Python
Python 备份程序代码实现
Mar 06 Python
K-近邻算法的python实现代码分享
Dec 09 Python
python实现多人聊天室
Mar 31 Python
使用python实现unix2dos和dos2unix命令的例子
Aug 13 Python
基于Python采集爬取微信公众号历史数据
Nov 27 Python
Ubuntu20.04环境安装tensorflow2的方法步骤
Jan 29 Python
Flask搭建一个API服务器的步骤
May 28 Python
彻底弄懂Python中的回调函数(callback)
Jun 25 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 disk_free_space 返回目录可用空间
2010/05/10 PHP
PHP入门经历和学习过程分享
2014/04/11 PHP
php使用gd2绘制基本图形示例(直线、圆、正方形)
2017/02/15 PHP
javascript SocialHistory 检查访问者是否访问过某站点
2008/08/02 Javascript
基于jquery实现的一个选择中国大学的弹框 (数据、步骤、代码)
2012/07/26 Javascript
jquery中交替点击事件toggle方法的使用示例
2013/12/08 Javascript
javaScript使用EL表达式的几种方式
2014/05/27 Javascript
Egret引擎开发指南之运行项目
2014/09/03 Javascript
jQuery中odd选择器的定义和用法
2014/12/23 Javascript
jQuery构造函数init参数分析续
2015/05/13 Javascript
简介JavaScript中search()方法的使用
2015/06/06 Javascript
java必学必会之static关键字
2015/12/03 Javascript
javascript代码调试之console.log 用法图文详解
2016/09/30 Javascript
微信小程序中多个页面传参通信的学习与实践
2017/05/05 Javascript
VUE 使用中踩过的坑
2018/02/08 Javascript
JS遍历JSON数组及获取JSON数组长度操作示例【测试可用】
2018/12/12 Javascript
JavaScript数组及常见操作方法小结
2019/11/13 Javascript
[55:35]VGJ.S vs Mski Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
python 打印直角三角形,等边三角形,菱形,正方形的代码
2017/11/21 Python
python 实现敏感词过滤的方法
2019/01/21 Python
python实现串口自动触发工作的示例
2019/07/02 Python
python datetime处理时间小结
2020/04/16 Python
python如何实现DES加密
2020/09/21 Python
通过Django Admin+HttpRunner1.5.6实现简易接口测试平台
2020/11/11 Python
CSS3系列教程:背景图片(背景大小和多背景图) 应用说明
2012/12/19 HTML / CSS
Silk’n激光脱毛器官网:silkn.com
2016/10/06 全球购物
英国版MAC彩妆品牌:Illamasqua
2018/04/18 全球购物
经理秘书找工作求职信
2013/12/19 职场文书
运动会广播稿400字
2014/01/25 职场文书
自我评价的范文
2014/02/02 职场文书
小学国庆节活动方案
2014/02/11 职场文书
党员公开承诺践诺书
2014/03/25 职场文书
2014年体检中心工作总结
2014/12/23 职场文书
检讨书格式
2015/01/23 职场文书
财务人员廉洁自律心得体会
2016/01/13 职场文书
windows server 2012安装FTP并配置被动模式指定开放端口
2022/06/10 Servers