webpy_web.database模块
webpy框架中使用mysql管理数据库有两种方法,一种是使用python里面的MySQLdb模块:
import MySQLdb
还有一种就是用webpy自带的web.database模块,实现的功能与MySQLdb模块基本一样:
import web db = web.database( dbn = 'mysql', user = 'root', pw = 'password', db = 'db_name', )
上面是创建一个数据库对象db,参数user为用户名,pw为密码,db为数据库名
db对象支持以下操作:
- insert
- select
- update
- delete
- multiple inserts
- advanced querying
- joining tables
inserting
先建一个表todos
create table users( id int primary key auto_increment, name nchar(20), password nchar(20), address nchar(20))
插入一项数据:
db.insert('users', name = 'Bob', password = '123', address = 'Zhuhai')
selecting
select返回的是'web.iterbetter'类型的对象,可以转化为list()来进行处理,每个list的元素是Storage类型,类似与python的字典,可以直接通过关键字来得到需要的值
users = list(db.select('users', where="id>10")) print users[0]['name'] 'Bob'
updating
num_updated = db.update('users', where="id = 10", address = 'Guangzhou')
返回值是修改的行数
deleting
db.delete(), 与update() 用法一样
advanced querying
如果对mysql语句比较熟悉的可以直接直接执行mysql语句:
results = list(db.query("select * from users where name = '%s'" % 'Bob')) print results[0]['name'], results[0]['address'] 'Bob', 'Zhuhai'