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打造出适合自己的定制化Eclipse IDE
Mar 02 Python
Python的Asyncore异步Socket模块及实现端口转发的例子
Jun 14 Python
Django 2.0版本的新特性抢先看!
Jan 05 Python
Python实现通讯录功能
Feb 22 Python
Python中多个数组行合并及列合并的方法总结
Apr 12 Python
Python 实现在文件中的每一行添加一个逗号
Apr 29 Python
python中时间、日期、时间戳的转换的实现方法
Jul 06 Python
如何用Anaconda搭建虚拟环境并创建Django项目
Aug 02 Python
Python3.8安装Pygame教程步骤详解
Aug 14 Python
在 Python 中使用 7zip 备份文件的操作
Dec 11 Python
Django与数据库交互的实现
Jun 03 Python
Python学习之迭代器详解
Apr 01 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数据库开发知多少
2006/10/09 PHP
PhpStorm+xdebug+postman调试技巧分享
2020/09/15 PHP
Javascript 模式实例 观察者模式
2009/10/24 Javascript
Extjs学习笔记之五 一个小细节renderTo和applyTo的区别
2010/01/07 Javascript
基于jquery1.4.2的仿flash超炫焦点图播放效果
2010/04/20 Javascript
js实现全屏漂浮广告移入光标停止移动
2013/12/02 Javascript
JS基于Mootools实现的个性菜单效果代码
2015/10/21 Javascript
javascript html5摇一摇功能的实现
2016/04/19 Javascript
AngularJS入门教程之服务(Service)
2016/07/27 Javascript
解析jQueryEasyUI的使用
2016/11/22 Javascript
Vue项目使用CDN优化首屏加载问题
2018/04/01 Javascript
Node.js使用cookie保持登录的方法
2018/05/11 Javascript
js中实例与对象的区别讲解
2019/01/21 Javascript
vue element-ui之怎么封装一个自己的组件的详解
2019/05/20 Javascript
layui实现form表单同时提交数据和文件的代码
2019/10/25 Javascript
不依任何赖第三方,单纯用vue实现Tree 树形控件的案例
2020/09/21 Javascript
微信小程序onShareTimeline()实现分享朋友圈
2021/01/07 Javascript
Python的类实例属性访问规则探讨
2015/01/30 Python
Python外星人入侵游戏编程完整版
2020/03/30 Python
Django入门使用示例
2017/12/12 Python
通过pycharm使用git的步骤(图文详解)
2019/06/13 Python
Python 进程操作之进程间通过队列共享数据,队列Queue简单示例
2019/10/11 Python
pytorch 常用线性函数详解
2020/01/15 Python
python自动点赞功能的实现思路
2020/02/26 Python
Django实现前台上传并显示图片功能
2020/05/29 Python
amazeui树节点自动展开折叠面板并选中第一个树节点的实现
2020/08/24 HTML / CSS
HEMA英国:荷兰原创设计
2018/08/28 全球购物
英国复古服装购物网站:Collectif
2019/10/30 全球购物
shell程序中如何注释
2012/02/17 面试题
煤矿安全生产责任书
2014/04/15 职场文书
2014乡镇班子个人对照检查材料思想汇报
2014/09/26 职场文书
家庭财产分割协议书范本
2014/11/24 职场文书
八达岭长城导游词
2015/01/30 职场文书
读书笔记格式
2015/07/02 职场文书
多人股份制合作协议书
2016/03/19 职场文书
Win11开始菜单添加休眠选项
2022/04/19 数码科技