Python 连接数据库 day5
import pymysql
#连接数据库,port必须是int型,字符编码是utf8,不能是utf-8,password必须是字符串
conn = pymysql.connect(host='数据库ip',user='user1',password='',
db='db_name',port=3306,charset='utf8',autocommit=True)#建立连接
cur= conn.cursor()#建立游标,可以把游标当作仓库管理员 cur.execute('show tables;')#只是帮你执行sql语句
print(cur.fetchall())#获取sql语句执行的结果
sql1="select * from app_student limit 5;"
cur.execute(sql1)
print(cur.fetchall())#取所有数据
sql2="select * from app_student where name='smh'"
cur.execute(sql2)
print(cur.fetchone())#只取一条,若返回结果有多条,只取第一条
sql3="select * from app_student where name ='hhh'"
cur.execute(sql3)
print(cur.fetchmany(3))#取几条
sql4="insert app_student ( `name`, `sex`, `age`, `addr`, `grade`, `phone`, `gold`) " \
"values ( 'test', 'girl', '18', 'beijing', 'jxz', '13121211111', '100');"
cur.execute(sql4)
conn.commit()
#提交,update、delete、insert这些修改数据库的语句,执行需要commit才能成功
#在connect中添加autocommit=True则自动提交 cur.close()#关闭游标
conn.close()#关闭连接,使用完了要关连接,不然会占数据库
将sql执行返回结果转为字典格式:
import pymysql
#连接数据库,port必须是int型,字符编码是utf8,不能是utf-8,password必须是字符串
conn = pymysql.connect(host='118.24.3.40',user='jxz',password='',
db='jxz',port=3306,charset='utf8',autocommit=True)#建立连接
cur=conn.cursor(pymysql.cursors.DictCursor)#传一个游标类型,可展示为字典
sql5= "select * from app_student where name='hhh'"
cur.execute(sql5)
print(cur.fetchmany(3))
cur.close()
conn.close() 结果为:
[{'id': 328, 'name': 'hhh', 'sex': 'girl', 'age': 18, 'addr': '河南省济源市北海大道32号', 'grade': '天蝎座', 'phone': '', 'gold': 100},
{'id': 345, 'name': 'hhh', 'sex': 'girl', 'age': 18, 'addr': '河南省济源市北海大道32号', 'grade': '天蝎座', 'phone': '', 'gold': 100},
{'id': 347, 'name': 'hhh', 'sex': 'girl', 'age': 18, 'addr': '河南省济源市北海大道32号', 'grade': '天蝎座', 'phone': '', 'gold': 100}]
将连接数据库写为方法
import pymysql def op_mysql(host,user,password,db,sql,port=3306,many_tag=False):#mang_tag是标识返回数据
conn = pymysql.connect(host=host,user=user,password=password,db=db,port=port,charset='utf8',autocommit=True)
cur = conn.cursor(pymysql.cursors.DictCursor)
cur.execute(sql)
if many_tag:#有
result = cur.fetchall()
else:
result = cur.fetchone()
cur.close()
conn.close()
return result
Python 连接数据库 day5的更多相关文章
- python笔记 - day5
python笔记 - day5 参考: http://www.cnblogs.com/wupeiqi/articles/5484747.html http://www.cnblogs.com/alex ...
- Python学习day5作业
目录 Python学习day5作业 ATM和购物商城 1. 程序说明 2. 基本流程图 3. 程序测试帐号 4. 程序结构: 5. 程序测试 title: Python学习day5作业 tags: p ...
- python连接数据库问题小结
在使用python连接数据库的时候遇到了这个问题: 大概意思就是在django的setting.py中配置的用户名和密码报错. 主要就是修改setting.py的配置 其中在里边的name和user项 ...
- 3.Python连接数据库PyMySQL
1.安装PyMySQL,输入命令:pip3 install PyMySQL 2.使用Navicat,创建数据库:TESTDB,表:EMPLOYEE,字段:FIRST_NAME,LAST_NAME,AG ...
- 数据测试001:利用python连接数据库插入excel数据
数据测试001:利用python连接数据库插入excel数据 最近在做数据测试,主要是做报表系统,需要往数据库插入数据验证服务逻辑,本次介绍如何利用python脚本插入Oracle和Mysql库中: ...
- python连接数据库自动发邮件
python连接数据库实现自动发邮件 1.运行环境 redhat6 + python3.6 + crontab + Oracle客户端 2.用到的模块 3.操作步骤 (1)安装python3.6参考 ...
- Python连接数据库流行用到的第三方库
Python连接数据库流行用到的第三方库: mysqldb:只支持Python2.x mysqlclient : mysqldb的衍生版本,完全兼容mysqldb,同时支持Python3.x,安装较复 ...
- Windows下Python连接数据库(mysql, mongodb)
一 实验平台 1 os: win7 64位旗舰版sp1 2 python: 2.7.10 x64 二 连接数据库 1 连接 mysql数据库 (1)下载mysql(5.6.25-winx64) 建议下 ...
- python连接数据库使用SQLAlchemy
参考python核心编程 ORM(Object Relational Mapper),如果你是一个更愿意操作Python对象而不是SQL查询的程序员,并且仍然希望使用关系型数据库作为你的后端,那么你可 ...
随机推荐
- 【UML 建模】在线UML建模工具 ProcessOn 使用具体解释
总结 : -- 推荐理由 : 近期从 Windows 操作系统 转到 MAC 上, 正在看设计模式 和 重构, 找不到好用的 UML 工具, 因此在网上找了一款能够在线使用的 UML 工具, 用起来发 ...
- LeetCode 203. Remove Linked List Elements (移除链表中的项)
Remove all elements from a linked list of integers that have value val. ExampleGiven: 1 --> 2 --& ...
- cojs1101. [Vijos1369] 难解的问题==codevs 2188 最长上升子序列
[题目描述] 在你的帮助下,蔚蓝来到了埃及.在金字塔里,蔚蓝看到了一个问题,传说,能回答出这个问题的人就能受到埃及法老的祝福,可是蔚蓝日夜奋战,还是想不出来,你能帮帮他么?(XXX: 胡扯,教主怎么可 ...
- 【bzoj1015】[JSOI2008]星球大战starwar
给定一个无向图,求联通块个数,以及k次每次摧毁一个点后的联通块个数 将边和摧毁的点全记录下来,反着做即可 注意被摧毁的点不能算作联通块 #include<algorithm> #inclu ...
- android TabHost控件
(一)TabHost控件,默认是在顶部显示的 TabHost是盛放Tab按钮和Tab内容的首要容器, TabWidget(tabs标签)用于选择页面,是指一组包含文本或图标的 ,FrameLayout ...
- Poj2054 color a tree && [HNOI/AHOI2018]排列
https://zybuluo.com/ysner/note/1120723 题面 原题 某省选强化题 大致意思是给你一颗树,选父亲后才能选儿子. 每个点对答案的贡献为你在第几次选这个点 × 该点权值 ...
- POJ 1273 Drainage Ditches 最大流
这道题用dinic会超时 用E_K就没问题 注意输入数据有重边.POJ1273 dinic的复杂度为O(N*N*M)E_K的复杂度为O(N*M*M)对于这道题,复杂度是相同的. 然而dinic主要依靠 ...
- Angular.forEach用法总结
}; }]; var so=[]; var so2=[]; var so3=[]; var so4=[]; var so5=[]; var so6=[]; ; ; angular.forEach(so ...
- Vue.prototype的用法
基础事例: 在vue项目main.js文件中: Vue.prototype.$appName = 'My App' 这样你可以通过在原型上定义它们使其在每个 Vue 的实例中可用. new Vue({ ...
- [Swift通天遁地]二、表格表单-(15)自定义表单文本框内容的格式
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...