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 文件与目录操作
Dec 24 Python
python函数缺省值与引用学习笔记分享
Feb 10 Python
Python中lambda的用法及其与def的区别解析
Jul 28 Python
python实现2048小游戏
Mar 30 Python
Python yield 使用浅析
May 28 Python
基于Python的关键字监控及告警
Jul 06 Python
Python实现的弹球小游戏示例
Aug 01 Python
用PyInstaller把Python代码打包成单个独立的exe可执行文件
May 26 Python
python使用turtle库与random库绘制雪花
Jun 22 Python
Python实现朴素贝叶斯分类器的方法详解
Jul 04 Python
33个Python爬虫项目实战(推荐)
Jul 08 Python
Python爬虫之Selenium实现关闭浏览器
Dec 04 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 基础教程(三)
2006/10/09 PHP
对javascript和select部件的结合运用
2006/10/09 PHP
PHP持久连接mysql_pconnect()函数使用介绍
2012/02/05 PHP
PHP 自定义错误处理函数trigger_error()
2013/03/26 PHP
PHP中可以自动分割查询字符的Parse_str函数使用示例
2014/07/25 PHP
php 无限分类 树形数据格式化代码
2016/10/11 PHP
降低PHP Redis内存占用
2017/03/23 PHP
PHP排序算法之希尔排序(Shell Sort)实例分析
2018/04/20 PHP
用javascript实现计算两个日期的间隔天数
2007/08/14 Javascript
JSQL 批量图片切换的实现代码
2010/05/05 Javascript
JQuery里选择超链接的实现代码
2011/05/22 Javascript
JS操作JSON要领详细总结
2013/08/25 Javascript
用JavaScript实现PHP的urlencode与urldecode函数
2015/08/13 Javascript
angularJS与bootstrap结合实现动态加载弹出提示内容
2015/10/16 Javascript
关于不同页面之间实现参数传递的几种方式讨论
2017/02/13 Javascript
xmlplus组件设计系列之按钮(2)
2017/04/26 Javascript
node.js支持多用户web终端实现及安全方案
2017/11/29 Javascript
webpack打包js文件及部署的实现方法
2017/12/18 Javascript
vue一个页面实现音乐播放器的示例
2018/02/06 Javascript
详解基于node.js的脚手架工具开发经历
2019/01/28 Javascript
vue-cli 3 全局过滤器的实例代码详解
2019/06/03 Javascript
原生js实现的移动端可拖动进度条插件功能详解
2019/08/15 Javascript
python中pylint使用方法(pylint代码检查)
2018/04/06 Python
pycharm 主题theme设置调整仿sublime的方法
2018/05/23 Python
python pandas实现excel转为html格式的方法
2018/10/23 Python
python2和python3在处理字符串上的区别详解
2019/05/29 Python
利用pyecharts实现地图可视化的例子
2019/08/12 Python
在python中利用try..except来代替if..else的用法
2019/12/19 Python
Python实现查找数据库最接近的数据
2020/06/08 Python
发现两个有趣的CSS3动画效果
2013/08/14 HTML / CSS
工地安全生产标语
2014/06/06 职场文书
企业理念标语
2014/06/09 职场文书
国企干部对照检查材料
2014/08/22 职场文书
什么是创业计划书?什么是商业计划书?这里一一解答
2019/07/12 职场文书
SQLServer2008提示评估期已过解决方案
2021/04/12 SQL Server
Python pygame实现中国象棋单机版源码
2021/06/20 Python