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 = [ ...
随机推荐
- MyBatis应用程序根据XML配置文件创建SqlSessionFactory
MyBatis应用程序根据XML配置文件创建SqlSessionFactory,SqlSessionFactory在根据配置,配置来源于两个地方,一处是配置文件,一处是Java代码的注解,获取一个Sq ...
- 【BZOJ】1068: [SCOI2007]压缩(dp)
http://www.lydsy.com/JudgeOnline/problem.php?id=1068 发现如果只设一维的话无法转移 那么我们开第二维,发现对于前i个来说,如果确定了M在哪里,第i个 ...
- CSS3文字立体效果
<!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...
- Linux下Vi/Vim的使用方法
本文介绍了vi (vim)的基本使用方法,但对于普通用户来说基本上够了!i/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特 ...
- Redis异构集群数据在线迁移工具Redis-Migrate-Tool【转】
摘要:Redis-Migrate-Tool(后面都简称RMT),是唯品会开源的redis数据迁移工具,主要用于异构redis集群间的数据在线迁移,即数据迁移过程中源集群仍可以正常接受业务读写请求,无业 ...
- 2D绘图引擎比较
这个问题很普遍.最近在研究这个问题,在网上搜了一些资料,再结合自己的经验,谈谈自己的一些想法. 一.双缓存能提高绘图效率吗? 网上有篇文章:绘图效率完整解决方案——三种手段提高GDI/GDI+绘图效率 ...
- MySQL按照汉字的拼音排序、按照首字母分类
项目中有时候需要按照汉字的拼音排序,比如联系人列表.矿物分类等,有的还需要按拼音字母从A到Z分类显示. 如果存储汉字的字段编码使用的是GBK字符集,因为GBK内码编码时本身就采用了拼音排序的方法(常用 ...
- python--sha256
import hmacimport hashlib def get_hmacsha256(key, message): key_bytes = bytes(key, 'utf-8') message_ ...
- [linux基础学习]默认的目录介绍
以下用一个表格来罗列linux默认的目录或文件及其用途: 目录/文件 用途 来源 / /处于Linux文件系统树形结构的最顶端,它是Linux文件系统的入口,所有的目录.文件.设备都在/之下. - / ...
- GROUP_CONCAT 拼接顺序
用 group_concat 拼接后的顺序 group_concat(id order by id) 里面id更新需要更换