首页 > 代码库 > web.py数据库操作方法指南 -《狗嗨默示录》-
web.py数据库操作方法指南 -《狗嗨默示录》-
1. 导入模块,定义数据库连接db
import web
db = web.database(dbn=‘postgres‘, user=‘dbuser‘, pw=‘‘, db=‘mydata‘)
2. select 查询
# 查询表
entries = db.select(‘mytable‘)
# where 条件
myvar = dict(name="Bob")
results = db.select(‘mytable‘, myvar, where="name = $name")
results = db.select(‘mytable‘, where="id>100")
# 查询具体列
results = db.select(‘mytable‘, what="id,name")
# order by
results = db.select(‘mytable‘, order="post_date DESC")
# group
results = db.select(‘mytable‘, group="color")
# limit
results = db.select(‘mytable‘, limit=10)
# offset
results = db.select(‘mytable‘, offset=10)
3. 更新
db.update(‘mytable‘, where="id = 10", value1 = "foo")
4. 删除
db.delete(‘mytable‘, where="id=10")
5. 复杂查询
# count
results = db.query("SELECT COUNT(*) AS total_users FROM users")
print results[0].total_users
# join
results = db.query("SELECT * FROM entries JOIN users WHERE entries.author_id = users.id")
# 防止SQL注入可以这么干
results = db.query("SELECT * FROM users WHERE id=$id", vars={‘id‘:10})
6 多数据库操作 (web.py大于0.3)
db1 = web.database(dbn=‘mysql‘, db=‘dbname1‘, user=‘foo‘)
db2 = web.database(dbn=‘mysql‘, db=‘dbname2‘, user=‘foo‘)
print db1.select(‘foo‘, where=‘id=1‘)
print db2.select(‘bar‘, where=‘id=
7. 事务
t = db.transaction()
try:
db.insert(‘person‘, name=‘foo‘)
db.insert(‘person‘, name=‘bar‘)
except:
t.rollback()
raise
else:
t.commit()
# Python 2.5+ 可以用with
from __future__ import with_statement
with db.transaction():
db.insert(‘person‘, name=‘foo‘)
db.insert(‘person‘, name=‘bar‘)
web.py数据库操作方法指南 -《狗嗨默示录》-
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。