python学习笔记(十)完善数据库操作
1.cur = coon.cursor(cursor=pymysql.cursors.DictCursor)的用法
建立游标,指定cursor类型返回的是字典,如果不指定类型,返回的是元组类型数据
import flask,pymysql,hashlib,json,redis
def mydb(sql,port=,charset='utf8'):
host,user,passwd,db='118.24.3.40','jxz','','jxz'
coon = pymysql.connect(user=user,host=host,port=port,passwd=passwd,db=db,charset=charset)
cur = coon.cursor(cursor=pymysql.cursors.DictCursor)#建立游标,指定cursor类型返回的是字典
cur.execute(sql)
if sql.strip()[:].upper()=='SELECT':
res = cur.fetchall()
else:
coon.commit()
res='ok'
cur.close()
coon.close()
return res print(mydb('select * from users_info' ))
指定游标的输出类型为字典,输出如下:
[{'passwd': '', 'username': 'zhaoxian', 'id': ''}, {'passwd': 'e10adc3949ba59abbe56e057f20f883e', 'username': 'xiaohei', 'id': ''}, {'passwd': 'ab56b4d92b40713acc5af89985d4b786', 'username': 'lily', 'id': ''}]
未指定游标输出类型,输出如下:
(('', 'zhaoxian', ''), ('', 'xiaohei', 'e10adc3949ba59abbe56e057f20f883e'), ('', 'lily', 'ab56b4d92b40713acc5af89985d4b786'))
2.cur.fetchone()与cur.fetchall(),cur.fetchmany()的区别
cur.fetchone()
#获取到这个sql执行的一条结果,它返回就只是一条数据
cur.fetchall()
#获取到这个sql执行的全部结果,它把数据库表里面的每一行数据放到一个list里面
cur.fetchmany()
#能传入一个数,指定返回多少条数据,如上就是指定返回5条数据
如果sql语句执行的结果是多条数据的时候,那就用fetchall()
如果你能确定sql执行的结果就只有一条,那么就用fetchone()
3.cur.description可以动态获取到数据库中表的字段
import flask,pymysql,hashlib,json,redis
def mydb(sql,port=,charset='utf8'):
host,user,passwd,db='118.24.3.40','jxz','','jxz'
coon = pymysql.connect(user=user,host=host,port=port,passwd=passwd,db=db,charset=charset)
cur = coon.cursor()#建立游标,指定cursor类型返回的是字典
cur.execute(sql)
if sql.strip()[:].upper()=='SELECT':
fields = []
#print(cur.description)输出为:(('id', 253, None, 40, 40, 0, True), ('username', 253, None, 40, 40, 0, True), ('passwd', 253, None, 40, 40, 0, True))
for field in cur.description: #循环cur.descriptin中的元素
fields.append(field[]) #取cur.descriptin中的每个元素是一个元组,然后取第一个元素添加到fields列表中
print(fields)
else:
coon.commit()
cur.close()
coon.close() mydb('select * from users_info' )
fields = []
for field in cur.description: #循环cur.descriptin中的元素
fields.append(field[]) 这三行代码可以用列表生成式代替,使代码更简洁更有逼格,作用效果是完全一样的
fields = [field[] for field in fields]
python学习笔记(十)完善数据库操作的更多相关文章
- python学习笔记(十 二)、操作数据库
每一种语言都少不了多数据库进行各种操作. python支持多种数据库.有关python支持的数据库清单,请参阅:https://wiki.python.org/moin/DatabaseInterfa ...
- Python学习笔记六:数据库操作
一:Python操作数据库的流程 二:开发环境准备 1:开发工具PyCharm 2:Python操作mysql的工具:需要安装Python-Mysql Connector,网址:https://sou ...
- [Python] 学习笔记之MySQL数据库操作
1 Python标准数据库接口DB-API介绍 Python标准数据库接口为 Python DB-API,它为开发人员提供了数据库应用编程接口.Python DB-API支持很多种的数据库,你可以选择 ...
- Python学习笔记21:数据库操作(sqlite3)
Python自带一个轻量级的关系型数据库SQLite.这一数据库使用SQL语言. SQLite作为后端数据库,能够搭配Python建站点,或者制作有数据存储需求的工具. SQLite还在其他领域有广泛 ...
- python学习笔记(十)、文件操作
在前面我们了解到了没得模块,其中有一个模块为fileinput,为文件操作模块,不知道小伙伴们是否还记得? 1 打开文件 要打开文件,可以使用fileinput中的fileinput.input函数进 ...
- python3.4学习笔记(十五) 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
python3.4学习笔记(十五) 字符串操作(string替换.删除.截取.复制.连接.比较.查找.包含.大小写转换.分割等) python print 不换行(在后面加上,end=''),prin ...
- python学习笔记(二)、字符串操作
该一系列python学习笔记都是根据<Python基础教程(第3版)>内容所记录整理的 1.字符串基本操作 所有标准序列操作(索引.切片.乘法.成员资格检查.长度.最小值和最大值)都适用于 ...
- Python学习笔记(十二)—Python3中pip包管理工具的安装【转】
本文转载自:https://blog.csdn.net/sinat_14849739/article/details/79101529 版权声明:本文为博主原创文章,未经博主允许不得转载. https ...
- python 学习笔记十六 django深入学习一 路由系统,模板,admin,数据库操作
django 请求流程图 django 路由系统 在django中我们可以通过定义urls,让不同的url路由到不同的处理函数 from . import views urlpatterns = [ ...
随机推荐
- eclipse 灵活使用makefile来编译C/C++
需求: 近期在看<C++ Primer Plus>, 作者在不断优化自己的类.有很多不同的版本号,有非常多的測试函数(main函数),我使用的是eclipse+CDT来编写C++,不可能为 ...
- 实战c++中的vector系列--知道emplace_back为何优于push_back吗?
上一篇博客说道vector中放入struct.我们先构造一个struct对象.再push_back. 那段代码中,之所以不能使用emplace_back,就是由于我们定义的struct没有显示的构造函 ...
- arduino知识
如果你买过Adafruit, Sparkfun, Seeedstudio和Arduino Store的Kit,不难发现Arduino官方的无论从包装和印刷上都是最具艺术气质的,其次是Sparkfun, ...
- 应用于Java中的一个开源的表达式语言(Expression Language)
OGNL(英文全称:Object Graph Navigation Language,中文名:对象导航图语言)是应用于Java中的一个开源的表达式语言(Expression Language),它被集 ...
- 【C语言】求旋转数组的最小数字,输入一个递增排序的数组的一个旋转,输出其最小元素
//求旋转数组的最小数字,输入一个递增排序的数组的一个旋转,输出其最小元素 #include <stdio.h> #include <string.h> int find_mi ...
- hdu 1513(dp+滚动数组)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1513 思路:n这么大,可以采用滚动数组,然后就是求原串和反串的LCS了. #include<io ...
- Hive将txt、csv等文本文件导入hive表
1.将txt文本文件放置hdfs目录下 2.登录hive并进入到指定数据库 3.创建表 create external table if not exists fun_user_external ( ...
- 论坛模块_版块管理_增删改查&实现上下移动
论坛模块_版块管理1_增删改查 设计实体Forum.java public class Forum { private Long id; private String name; private St ...
- Effective C++ Item 9 Never call virtual functions during constrution or destruction
Because such calls would never go to a more derived class than that of currently executing construto ...
- 编程之美 set 8 区间重合判断
Leetcode 上有连续的两道题, 一个是 insert interval, 一个是 merge interval, 其中 insert interval 是 merge interval. 其中 ...