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学习笔记(十)完善数据库操作的更多相关文章

  1. python学习笔记(十 二)、操作数据库

    每一种语言都少不了多数据库进行各种操作. python支持多种数据库.有关python支持的数据库清单,请参阅:https://wiki.python.org/moin/DatabaseInterfa ...

  2. Python学习笔记六:数据库操作

    一:Python操作数据库的流程 二:开发环境准备 1:开发工具PyCharm 2:Python操作mysql的工具:需要安装Python-Mysql Connector,网址:https://sou ...

  3. [Python] 学习笔记之MySQL数据库操作

    1 Python标准数据库接口DB-API介绍 Python标准数据库接口为 Python DB-API,它为开发人员提供了数据库应用编程接口.Python DB-API支持很多种的数据库,你可以选择 ...

  4. Python学习笔记21:数据库操作(sqlite3)

    Python自带一个轻量级的关系型数据库SQLite.这一数据库使用SQL语言. SQLite作为后端数据库,能够搭配Python建站点,或者制作有数据存储需求的工具. SQLite还在其他领域有广泛 ...

  5. python学习笔记(十)、文件操作

    在前面我们了解到了没得模块,其中有一个模块为fileinput,为文件操作模块,不知道小伙伴们是否还记得? 1 打开文件 要打开文件,可以使用fileinput中的fileinput.input函数进 ...

  6. python3.4学习笔记(十五) 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)

    python3.4学习笔记(十五) 字符串操作(string替换.删除.截取.复制.连接.比较.查找.包含.大小写转换.分割等) python print 不换行(在后面加上,end=''),prin ...

  7. python学习笔记(二)、字符串操作

    该一系列python学习笔记都是根据<Python基础教程(第3版)>内容所记录整理的 1.字符串基本操作 所有标准序列操作(索引.切片.乘法.成员资格检查.长度.最小值和最大值)都适用于 ...

  8. Python学习笔记(十二)—Python3中pip包管理工具的安装【转】

    本文转载自:https://blog.csdn.net/sinat_14849739/article/details/79101529 版权声明:本文为博主原创文章,未经博主允许不得转载. https ...

  9. python 学习笔记十六 django深入学习一 路由系统,模板,admin,数据库操作

    django 请求流程图 django 路由系统 在django中我们可以通过定义urls,让不同的url路由到不同的处理函数 from . import views urlpatterns = [ ...

随机推荐

  1. C语言错误: CRT detected that the application wrote to memory after end of heap buffer

    CRT detected that the application wrote to memory after end of heap buffer 多是中间对其进行了一些操作,在程序结束处,释放内存 ...

  2. 错题0920-java

    1.java如何接受request域中的参数? A:request.getRequestURL() B:request. getAttribute() C:request.getParameter() ...

  3. php -- php数组相关函数

    array range ( mixed $low , mixed $high [, number $step ] ) 创建一个连续的数组 range('a','z'); foreach (range( ...

  4. 【BZOJ】1652: [Usaco2006 Feb]Treats for the Cows(dp)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1652 dp.. 我们按间隔的时间分状态k,分别为1-n天 那么每对间隔为k的i和j.而我们假设i或者 ...

  5. 学习:base64和图片。

    一.网页即时聊天中,客户端A可以将图片转换为base64,发送到客户端B(可能经server端转发) 再由base64转换为图片. 关键字搜索:url.base64.

  6. maven+springmvc错误 JAX-RS (REST Web Services) 2.0 can not be installed

    项目problem提示错误 JAX-RS (REST Web Services) 2.0 can not be installed : One or more constraints have not ...

  7. [4] 算法之路 - 插入排序之Shell间隔与Sedgewick间隔

    题目 插入排序法由未排序的后半部前端取出一个值.插入已排序前半部的适当位置.概念简单但速度不快. 排序要加快的基本原则之中的一个: 是让后一次的排序进行时,尽量利用前一次排序后的结果,以加快排序的速度 ...

  8. Hibernate_day04--QBC查询

    QBC查询 1 使用hql查询需要写hql语句实现,但是使用qbc时候,不需要写语句了,使用方法实现 2 使用qbc时候,操作实体类和属性 3 使用qbc,使用Criteria对象实现 查询所有 1 ...

  9. IOS内购支付服务器验证模式

    IOS 内购支付两种模式: 内置模式 服务器模式 内置模式的流程: app从app store 获取产品信息 用户选择需要购买的产品 app发送支付请求到app store app store 处理支 ...

  10. css3 transform 让 font-size 小于 12px

    做页面的时候,看到一个地方要求 font-size:8px ,测试了下,浏览器果然不支持,^_^,然后就想怎么办,理所当然的掉进了 -webkit-text-size-adjust:none; 的坑, ...