webpy使用mysql数据库操作(web.database)
webpy_web.database模块
webpy框架中使用mysql管理数据库有两种方法,一种是使用python里面的MySQLdb模块:
1 | import MySQLdb |
还有一种就是用webpy自带的web.database模块,实现的功能与MySQLdb模块基本一样:
1 2 3 4 5 6 7 8 | 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
1 2 3 4 5 | create table users( id int primary key auto_increment, name nchar( 20 ), password nchar( 20 ), address nchar( 20 )) |
插入一项数据:
1 | db.insert( 'users' , name = 'Bob' , password = '123' , address = 'Zhuhai' ) |
selecting
select返回的是'web.iterbetter'类型的对象,可以转化为list()来进行处理,每个list的元素是Storage类型,类似与python的字典,可以直接通过关键字来得到需要的值
1 2 3 4 | users = list (db.select( 'users' , where = "id>10" )) print users[ 0 ][ 'name' ] 'Bob' |
updating
1 | num_updated = db.update( 'users' , where = "id = 10" , address = 'Guangzhou' ) |
返回值是修改的行数
deleting
db.delete(), 与update() 用法一样
advanced querying
如果对mysql语句比较熟悉的可以直接直接执行mysql语句:
1 2 3 4 | results = list (db.query( "select * from users where name = '%s'" % 'Bob' )) print results[ 0 ][ 'name' ], results[ 0 ][ 'address' ] 'Bob' , 'Zhuhai' |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!