python访问数据库
1. python DB api简介
2. 使用python DB API访问数据库的流程
3. python+MYSQL开发环境的配置
4 connection对象
使用方法MySQLdb.connection(host,port,user,passwd,db,charset)返回一个connection对象
connection对象支持的方法有
方法 | 说明 |
cursor() | 使用该连接创建并返回的游标 |
commit() | 提交当前事务 |
rollback() | 回滚当前事务 |
close() | 关闭连接 |
连接数据库
1 import MySQLdb 2 conn = MySQLdb.Connect(host = '127.0.0.1', 3 port = 3306, 4 user = 'root', 5 passwd = '123456', 6 db = 'test', 7 charset='utf8') 8 cur = conn.cursor() 9 cur.close() 10 conn.close()
5. 数据库游标对象cursor
1 import MySQLdb 2 conn = MySQLdb.Connect(host = '127.0.0.1', 3 port = 3306, 4 user = 'root', 5 passwd = '123456', 6 db = 'test', 7 charset='utf8') 8 cur = conn.cursor() 9 sql = 'select * from user' 10 cur.execute(sql) 11 print cur.rowcount 12 print cur.fetchone() 13 print cur.fetchmany(3) 14 print cur.fetchall() 15 cur.close() 16 conn.close()
输出
1 import MySQLdb 2 conn = MySQLdb.Connect(host = '127.0.0.1', 3 port = 3306, 4 user = 'root', 5 passwd = '123456', 6 db = 'test', 7 charset='utf8') 8 cur = conn.cursor() 9 sql_insert = "insert into user(usrid, usrname) values(10, 'name10')" 10 sql_delete = "delete from user where usrid<3" 11 sql_update = "update user set usrname = 'name91' where usrid=9" 12 try: 13 cur.execute(sql_insert) 14 cur.execute(sql_update) 15 cur.execute(sql_delete) 16 conn.commit() 17 except Exception as e: 18 print e 19 conn.rollback() 20 cur.close() 21 conn.close()
7. 银行转账实例
假设张三要向王五转账100元,其转账流程如下图所示
1 import MySQLdb 2 def checkAccountAvailable(conn,username): 3 cur = conn.cursor() 4 sql = "select * from account where username='%s'"%username 5 print sql 6 cur.execute(sql) 7 r = cur.rowcount 8 print r 9 cur.close() 10 return r 11 12 def account(conn, username): 13 cur=conn.cursor() 14 sql = "select * from account where username='%s'"%username 15 print sql 16 cur.execute(sql) 17 account = cur.fetchone()[1] 18 cur.close 19 return account 20 def main(): 21 conn = MySQLdb.Connect(host = '127.0.0.1', 22 port = 3306, 23 user = 'root', 24 passwd = '123456', 25 db = 'test', 26 charset='utf8') 27 if checkAccountAvailable(conn,'zhangsan') and checkAccountAvailable(conn,'wangwu'): 28 if account(conn,"zhangsan") >= 100: 29 try: 30 cur = conn.cursor() 31 cur.execute("update account set account=account-100 where username='zhangsan'") 32 cur.execute("update account set account=account+100 where username='wangwu'") 33 conn.commit() 34 except Exception as e: 35 print e 36 conn.rollback() 37 finally: 38 cur.close() 39 else: 40 print "zhangsan has not enough money" 41 else: 42 print "account not existed" 43 44 conn.close() 45 main()
转载于:https://www.cnblogs.com/blackclody/p/6893235.html
python访问数据库相关推荐
- python获取mysql中的数据供js调用_详解js文件通过python访问数据库方法
我来教你 js文件怎么通过python访问数据库,希望能够为你带来帮助. 1.如果是要提交表单内容给 服务器的 python 处理,那么只需要在表单 里面的 action 填写服务端的处理路由就可以了 ...
- 使用程序设计语言访问SQL:JDBC、从Python访问数据库、ODBC、嵌入式SQL
SQL 提供了一种强大的声明式查询语言.用 SQL 编写查询通常比用通用程序设计语言同样的查询进行编码要简单得多.然而,基于至少两种原因数据库程序员必须能够访问通用程序设计语言: 1.因为 SQL 并 ...
- python访问数据库如何解决高并发_怎样解决数据库高并发的问题
怎样解决数据库高并发的问题?解决数据库高并发使用缓存式的Web应用程序架构.增加Redis缓存数据库.增加数据库索引.页面静态化.使用存储过程.MySQL主从读写分离.分表分库.负载均衡集群. 解决数 ...
- python访问数据库如何解决高并发_使用 Python 和 Oracle 数据库实现高并发性
随着趋势发展的核心转向更多而不是更快发展,最大限度地提高并发性的重要性日益凸显.并发性使得编程模式发生了新的转变,可以编写异步代码,从而将多个任务分散到一组线程或进程中并行工作.如果您不是编程新手并且 ...
- python访问数据库oracle_python连接oracle数据库
结合自己公司项目练练手数据库这块的操作. 我公司所有项目均使用oracle数据库,就需要先安装oracle相关的.whl文件.在网上找了一些关于"python连接数据库"的相关帖子 ...
- python访问数据库统一方法_Python 3.x 连接数据库(pymysql 方式)
参考:http://www.cnblogs.com/woider/p/5926744.html ==================pymysql=================== 1.PyMyS ...
- Python 访问数据库
数据库 当程序运行结束时,通常需要将数据保存到磁盘上,而如何定义数据的格式就是一个大问题 假如我们需要保存一个班级的成绩 名字 成绩 Bob 85 Lisa 55 你可以用一个文本文件保存,一行保存一 ...
- python访问数据库日志文件_python利用inotify实现把nginx日志实时写入数据库
利用了pyinotify库,我用的是这里的这个,外链网址已屏蔽 其实网上yum上也有pyinotify库可以安装. 写入数据库是pymysql这里做一下记录, 先务pyinotify实现一个tail ...
- Python MySQL 数据库
python DB API python访问数据库的统一接口规范,完成不同数据库的访问 包含的内容: connection cursor exceptions 访问数据库流程: 1.创建connect ...
最新文章
- ioctl kernel 构建注意事项
- java基础学不会_java基础
- 数据结构单向不循环链表实现多项式合并
- 小眼睛有多惨?美颜都懒得救你......
- 零基础跨行学习Java是否可行
- 蓝软服务器文件监控同步系统,蓝软7000ERP通用操作使用教程
- CentOS 7 最小化安装后的注意事项(一)
- node.js(四)Mongoose使用进阶
- 使用node批量压缩图片
- steam官网网页服务器打不开,steam打不开,教您怎么解决steam打不开
- 近年来,小样本学习取得重大进展了吗?
- 2022/7/23 日记
- python 可视化 ploty 画3dmesh网格图
- Android实现截屏和截长图功能的几种方法
- 企业微信机器人发送消息
- 【好文】为什么必须学好.Net Core?怎么样才能弯道超车拿高薪?这样做一周就够了!(文末彩蛋)...
- WebRTC技术总结
- 男女交往技巧 男生如何赞美女生才有效
- SOC环境中挂载C和S家VIP时,解决UVM uvm_pkg冲突问题
- 数理天地杂志数理天地杂志社数理天地编辑部2022年第15期目录
热门文章
- android 时间戳 时区,三句话理解时区与时间戳
- java for循环的这种写法怎么理解:for (; ; ) {},
- ExtClassLoader和AppClassLoader是Launcher类的两个内部类
- 后端JAVA:说说你对【注解】的理解
- 后端:最受欢迎Java数据库访问框架(DAO层)
- android sqlite alert table,android sqlite数据库操作
- 在Linux下禁用键盘、鼠标、触摸板(笔记本)等输入设备
- lynda ux_如何建立内部UX团队
- flutter 透明度动画_Flutter中的动画填充+不透明度动画✨
- CF1100F Ivan and Burgers