web.py数据库操作方法指南 -《狗嗨默示录》-

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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数据库操作方法指南 -《狗嗨默示录》-的主要内容,如果未能解决你的问题,请参考以下文章

python web py入门(46)- jQuery 事件 - $( document ).ready与$( window ).on( "load"的区别

Node.js权威指南 - 在Node.js中操作文件系统

关于Mysql(MariaDB)的基本操作命令指南

安装 web3.py 时如何消除错误

python_面向对象魔法方法指南

实现服务层方法的指南