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的更多相关文章

  1. python笔记 - day5

    python笔记 - day5 参考: http://www.cnblogs.com/wupeiqi/articles/5484747.html http://www.cnblogs.com/alex ...

  2. Python学习day5作业

    目录 Python学习day5作业 ATM和购物商城 1. 程序说明 2. 基本流程图 3. 程序测试帐号 4. 程序结构: 5. 程序测试 title: Python学习day5作业 tags: p ...

  3. python连接数据库问题小结

    在使用python连接数据库的时候遇到了这个问题: 大概意思就是在django的setting.py中配置的用户名和密码报错. 主要就是修改setting.py的配置 其中在里边的name和user项 ...

  4. 3.Python连接数据库PyMySQL

    1.安装PyMySQL,输入命令:pip3 install PyMySQL 2.使用Navicat,创建数据库:TESTDB,表:EMPLOYEE,字段:FIRST_NAME,LAST_NAME,AG ...

  5. 数据测试001:利用python连接数据库插入excel数据

    数据测试001:利用python连接数据库插入excel数据 最近在做数据测试,主要是做报表系统,需要往数据库插入数据验证服务逻辑,本次介绍如何利用python脚本插入Oracle和Mysql库中: ...

  6. python连接数据库自动发邮件

    python连接数据库实现自动发邮件 1.运行环境 redhat6 + python3.6 + crontab + Oracle客户端 2.用到的模块  3.操作步骤 (1)安装python3.6参考 ...

  7. Python连接数据库流行用到的第三方库

    Python连接数据库流行用到的第三方库: mysqldb:只支持Python2.x mysqlclient : mysqldb的衍生版本,完全兼容mysqldb,同时支持Python3.x,安装较复 ...

  8. Windows下Python连接数据库(mysql, mongodb)

    一 实验平台 1 os: win7 64位旗舰版sp1 2 python: 2.7.10 x64 二 连接数据库 1 连接 mysql数据库 (1)下载mysql(5.6.25-winx64) 建议下 ...

  9. python连接数据库使用SQLAlchemy

    参考python核心编程 ORM(Object Relational Mapper),如果你是一个更愿意操作Python对象而不是SQL查询的程序员,并且仍然希望使用关系型数据库作为你的后端,那么你可 ...

随机推荐

  1. Nodejs创建HTTPS服务器

    Nodejs创建HTTPS服务器 从零开始nodejs系列文章,将介绍如何利Javascript做为服务端脚本,通过Nodejs框架web开发.Nodejs框架是基于V8的引擎,是目前速度最快的Jav ...

  2. 在oracle中操作表及字段注释,查询一个表的所有字段名以及属性和约束

    1.查询表注释 SELECT * FROM USER_TAB_COMMENTS; 三列:TABLE_NAME,TABLE_TYPE,COMMENTS 2.查询字段注释 SELECT * FROM US ...

  3. P4700 算

    P4700 算 时间: 1000ms / 空间: 125829120KiB / Java类名: Main 背景 zhx和他的妹子出去玩. 描述

  4. Android Studio报错:DefaultAndroidProject : Unsupported major.minor version 52.0

    今天使用Android Studio 2.0打开我之前的项目时,编译报了如下错误: Error:Cause: com/android/build/gradle/internal/model/Defau ...

  5. Linux音频驱动-ALSA概述

    概述 ALSA(Advanced Linux Sound Architecture)是linux上主流的音频结构,在没有出现ALSA架构之前,一直使用的是OSS(Open Sound System)音 ...

  6. 【POJ 2018】 Best Cow Fences

    [题目链接] http://poj.org/problem?id=2018 [算法] 二分平均值 检验时将每个数减去二分的值,求长度至少为L的子序列和的最大值,判断是否大于0 [代码] #includ ...

  7. B1877 [SDOI2009]晨跑 费用流

    其实之前写过一个板子,但是一点印象都没有,所以今天重写了一下,顺便把这个题当成板子就行了. 其实费用流就是把bfs换成spfa,但是中间有一个原则,就是费用优先,在费用(就是c)上跑spfa,顺便求出 ...

  8. 洛谷P1281 书的复制

    题目描述 现在要把m本有顺序的书分给k给人复制(抄写),每一个人的抄写速度都一样,一本书不允许给两个(或以上)的人抄写,分给每一个人的书,必须是连续的,比如不能把第一.第三.第四本书给同一个人抄写. ...

  9. AAC的AudioSpecificConfig细节

    AAC格式里有个复杂的AudioSpecificConfig, 在FLV格式里称为AAC sequence header.在正式播放ADTS AAC数据包之前,需要用AudioSpecificConf ...

  10. PCB genesis自制孔点 Font字体实现方法

    一.先看genesis原有Font字体 在PCB工程CAM加孔点字体要求时,通常我们直接用Geneis软件给我们提供了2种孔点字体canned_57与canned_67,但此字体可能不能满足各个工厂个 ...