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中zip和unzip数据的方法
May 27 Python
在Django框架中设置语言偏好的教程
Jul 27 Python
如何在Python函数执行前后增加额外的行为
Oct 20 Python
python中安装Scrapy模块依赖包汇总
Jul 02 Python
Python中字典(dict)合并的四种方法总结
Aug 10 Python
定制FileField中的上传文件名称实例
Aug 23 Python
Python内置函数delattr的具体用法
Nov 23 Python
Python实现Mysql数据统计及numpy统计函数
Jul 15 Python
python中open函数的基本用法示例
Sep 07 Python
20行Python代码实现视频字符化功能
Apr 13 Python
python excel多行合并的方法
Dec 09 Python
python time.strptime格式化实例详解
Feb 03 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
虫族 Zerg 历史背景
2020/03/14 星际争霸
德生S2000南麂列岛台湾FM收听记录
2021/03/02 无线电
php分页示例分享
2014/04/30 PHP
php基于session实现数据库交互的类实例
2015/08/03 PHP
AJAX PHP无刷新form表单提交的简单实现(推荐)
2016/09/09 PHP
PHP获取路径和目录的方法总结【必看篇】
2017/03/04 PHP
PHP实现用户异地登录提醒功能的方法【基于thinkPHP框架】
2018/03/15 PHP
在 Laravel 项目中使用 webpack-encore的方法
2019/07/21 PHP
js 控制下拉菜单刷新的方法
2013/03/03 Javascript
jquery实现div拖拽宽度示例代码
2013/07/31 Javascript
js购物车实现思路及代码(个人感觉不错)
2013/12/23 Javascript
NodeJS制作爬虫全过程(续)
2014/12/22 NodeJs
学习使用AngularJS文件上传控件
2016/02/16 Javascript
js获取页面引用的css样式表中的属性值方法(推荐)
2016/08/19 Javascript
js实现拖拽功能
2017/03/01 Javascript
JS实现DOM删除节点操作示例
2018/04/04 Javascript
基于vue实现一个禅道主页拖拽效果
2019/05/27 Javascript
python海龟绘图实例教程
2014/07/24 Python
python使用socket向客户端发送数据的方法
2015/04/29 Python
Python实用技巧之列表、字典、集合中根据条件筛选数据详解
2018/07/11 Python
解决pyttsx3无法封装的问题
2018/12/24 Python
对python实现合并两个排序链表的方法详解
2019/01/23 Python
使用python制作一个解压缩软件
2019/11/13 Python
基于django micro搭建网站实现加水印功能
2020/05/22 Python
Keras实现将两个模型连接到一起
2020/05/23 Python
python 安装移动复制第三方库操作
2020/07/13 Python
python实现图像随机裁剪的示例代码
2020/12/10 Python
加拿大最大的钻石商店:Peoples Jewellers
2018/01/01 全球购物
车库门开启器、遥控器和零件:Chamberlain
2019/04/09 全球购物
荷兰鞋类购物网站:Donelli
2019/05/24 全球购物
怎样有效的进行自我评价
2013/10/06 职场文书
党校培训思想汇报
2014/01/03 职场文书
2014年十一国庆节爱国演讲稿
2014/09/23 职场文书
css3新特性的应用示例分析
2022/03/16 HTML / CSS
苹果可能正在打击不进行更新的 App
2022/04/24 数码科技
python基础之//、/与%的区别详解
2022/06/10 Python