正在加载...

webpy-3 数据库

得到连接

db = web.database(dbn='postgres', db='mydata', user='dbuser', pw='')

简单查询

db.select(
    'table_name',                   # 表名
    vars  = {'name'='py'},          # 用来填充查询条件, 这个例子中对应的就是where的$name
    where = 'username=$name',       # 查询条件
    what  = 'id, username',         # 表示你要查询的field是哪些,默认为*。这个例子中表示查询id和username字段
    order = 'age DESC',             # 排序方式,表示按照年龄的倒排
    group = 'gender',               # 表示按照gender分组
    limit = 10,                     # 查询10条
    offset = 10,                    # 表示从第10条开始
    _test  = True/False             # 日志打印出查询语句,True表示打印,False表示不打印。一般debug环境设置为True
)

高级查询

db.query("SELECT COUNT(*) AS total_users FROM users")

db.query("SELECT * FROM user WHERE user.id = %s" % 10) # 这个可能有sql注入,可以修改为下面的

db.query("SELECT * FROM user WHERE user.id = $id", vars = {'id': 10 }) # 这个就没有sql注入

更新

db.update('table_name', where="id = 10", username = "pengyi") # 把id=10的记录的username修改为pengyi

插入

db.insert('table_name', username="Poy") # 插入一条记录,设置username=Poy

删除

db.delete('table_name', where="id = 10") # 删除id=10的记录

事务

with db.transaction():
    db.insert('table_name', name='py')
    db.insert('table_name', name='pengyi')