pymysql安装和使用
一、pymysql安装
sql="select down_task_id,stock_code,list_date from down_task where down_type=1 and task_status=1"
conn = pymysql.connect(host=MYSQL_IP,port=MYSQL_PORT,user=MYSQL_USER,passwd=MYSQL_PWD,db=MYSQL_DATABASE,charset=MYSQL_ENCODE)
cur = conn.cursor()
cur.execute(sql)
for r in cur:
mydata=downtask(r[0],r[1],r[2])
task_dict[mydata.down_task_id]=mydata
update_task(mydata.down_task_id,2)
conn.close()
pymysql也提供了很多取数据的方法,比如:
- 取一行数据:row=cur.fetchone()
- 取所有返回的记录row = cur.fetchall()
- 取几行记录:row = cur.fetchmany(n) #n是返回的记录数
2、更新数据
sql="update down_task set task_status=%d,complate_date=now() where down_task_id=%d"
conn = pymysql.connect(host=MYSQL_IP,port=MYSQL_PORT,user=MYSQL_USER,passwd=MYSQL_PWD,db=MYSQL_DATABASE,charset=MYSQL_ENCODE)
try:
cur = conn.cursor()
time = datetime.datetime.now()
time_str = datetime.datetime.strftime(time,'%Y-%m-%d%H:%M:%S')
cur.execute(sql % (status,down_task_id))
conn.commit()
conn.close()
except:
print '##################update task compate failed,rollback###############'
conn.rollback()
conn.close()
return False
更新时记得要提交.只有在语句执行后做了提交操作,才会真正的将结果更新到数据表中.更新脚本中有时间字段时,特别是更新当前系统时间,直接用now()就好.
sql="insert down_task(stock_code, down_type,task_status,complate_date,create_date,list_date) values(%s,2,1,now(),now(),%d)"
conn = pymysql.connect(host=MYSQL_IP,port=MYSQL_PORT,user=MYSQL_USER,passwd=MYSQL_PWD,db=MYSQL_DATABASE,charset=MYSQL_ENCODE)
try:
cur = conn.cursor()
cur.execute(sql % ("'"+stock_code+"'",list_date))
conn.commit()
conn.close()
except:
print '##################update task compate failed,rollback###############'
conn.rollback()
conn.close()
return False
插入操作时有两点需要注意:
sql="insert down_task(stock_code, down_type,task_status,complate_date,create_date,list_date) values('002332',2,1,now(),now(),2010),('002332',2,1,now(),now(),2010)"
conn = pymysql.connect(host=MYSQL_IP,port=MYSQL_PORT,user=MYSQL_USER,passwd=MYSQL_PWD,db=MYSQL_DATABASE,charset=MYSQL_ENCODE)
try:
cur = conn.cursor()
cur.execute(sql)
conn.commit()
conn.close()
except:
print '##################insert task compate failed,rollback###############'
conn.rollback()
conn.close()
return False
5、删除操作
delsql = "delete from down_task where stock_code=%s"
conn = pymysql.connect(host=MYSQL_IP,port=MYSQL_PORT,user=MYSQL_USER,passwd=MYSQL_PWD,db=MYSQL_DATABASE,charset=MYSQL_ENCODE)
try:
cur = conn.cursor()
cur.execute(delsql % ("'"+''+"'"))
conn.commit()
conn.close()
except:
print '##################insert task compate failed,rollback###############'
conn.rollback()
conn.close()
return False
6、调用无参数存储过程
conn = pymysql.connect(host=MYSQL_IP,port=MYSQL_PORT,user=MYSQL_USER,passwd=MYSQL_PWD,db=MYSQL_DATABASE,charset=MYSQL_ENCODE)
#游标设置为字典类型
cursor = conn.cursor()
#无参数存储过程
cursor.callproc('p2') #等价于cursor.execute("call p2()")
row_1 = cursor.fetchone()
print row_1
conn.commit()
cursor.close()
conn.close()
7、调用有参数存储过程
conn = pymysql.connect(host=MYSQL_IP,port=MYSQL_PORT,user=MYSQL_USER,passwd=MYSQL_PWD,db=MYSQL_DATABASE,charset=MYSQL_ENCODE)
cursor = conn.cursor()
cursor.callproc('p1', args=(1, 22, 3, 4))
#获取执行完存储的参数,参数@开头
cursor.execute("select @p1,@_p1_1,@_p1_2,@_p1_3") #{u'@_p1_1': 22, u'@p1': None, u'@_p1_2': 103, u'@_p1_3': 24}
row_1 = cursor.fetchone()
print row_1
conn.commit()
cursor.close()
conn.close()
四、总结
pymysql安装和使用的更多相关文章
- pymysql安装
安装python3之后 链接数据库需要安装pymysql pymysql 下载地址 https://pypi.python.org/pypi/PyMySQL3/0.5 ,下载之后传到linux虚拟机, ...
- 关于MySQL中pymysql安装的问题。
一 一般情况下我们直接在终端输入: pip3 install pymysql 就能够自动安装成功. 但是有时候我们必须先指定一个python解释器: 比如我们指定python3 在终端cmd输入:py ...
- python pymysql安装
==================pymysql=================== 由于 MySQLdb 模块还不支持 Python3.x,所以 Python3.x 如果想连接MySQL需要安装 ...
- Python 之 PyMySQL 安装和使用
Python具有内置的SQLite支持. 在本节中,我们将学习使用MySQL的相关概念和知识. 在早期Python版本一般都使用MySQLdb模块,但这个MySQL的流行接口与Python 3不兼容. ...
- centos7下pymysql安装
1. 安装 添加mysql yum respository 添加 MySQL Yum Repository 到你的系统 repository 列表中,执行 wget http://repo.mysql ...
- mac多版本python安装 pymysql
系统里面安装了多个python的版本,有2.7和3.4等.默认的2.7版本,但我开发需要3.4版本的. 默认情况下,用pip安装PyMySQL $sudo pip install PyMySQL 安装 ...
- python 下安装pymysql数据库
两种方法来安装pymysql 方法一.利用命令来安装 安装:python37 -m pip install pymysql 升级:python37 -m pip install pymysql --u ...
- scrapy 和 scrapy_redis 安装
安装sqlslte,scrapy需要这个模块 yum install sqlite-devel python3.5 下载包自己编译安装 ./configure make make install 自带 ...
- python 3.5.2安装mysql驱动报错
python 3.5.2安装mysql驱动报错 python 3.5.2安装mysql驱动时出现如下异常: [root@localhost www]# pip install mysql-connec ...
随机推荐
- 小程序wx.navigateTo和wx.redirectTo 都无效
最近在写小程序,遇到页面跳转时,发现有几次失败.查询资料已解决,总结一下知识点: 一.如下,第5层到到6层时失败(评论页⑤-->返回商品详情页⑥) 登陆①-->主页②-->商品列表页 ...
- php数组基础知识
php数组 <?php $kele = array('张三',10 => '李四', 'PHP中文网' , '去PHP中文网学PHP', 19 => '王二' , '小明'); // ...
- jstl的表达式不能解析
问题:配置问题 解决:web.xml中添加环境的配置,环境配成2.4的版本就ok了 <web-app xmlns="http://java.sun.com/xml/ns/j2ee&qu ...
- Java接口-----代理模式(Proxy)
public static void main(String[] args) { // TODO Auto-generated method stub ProxySubject a = new Pro ...
- python爬微信公众号前10篇历史文章(1)-思路概览
作为程序员,要时刻保持一颗好奇心和想要学习的姿态. 练习怎样利用搜狗微信爬取某指定微信公众号的历史文章.爬取微信公众号本身难度非常大,感谢搜狗提供了一个可以爬取数据的平台. 代码部分参考于: http ...
- 深入理解Java虚拟机(第2版) 笔记目录
本篇为读深入理解Java虚拟机(第2版)一书的笔记目录. Java 运行期数据区 Java 垃圾回收算法 Java 内存分配策略 Java 类文件结构 Java 加载.链接.初始化 Java 类加载器
- ACM搜索问题盘点
深度搜索:棋盘问题,详见http://poj.org/problem?id=1321 //#include<bits/stdc++.h> #include<cstdio> #i ...
- 安装VMware workstation遇到的两个问题:安装过程中的DLL问题和安装后打开需要的管理权限问题
1.安装过程中遇到Microsoft runtime DLL安装程序未能完成安装的问题? 在遇到这个问题时不要点击确定,需要在开始菜单中输入%temp%,然后跳转到一个文件夹里,找到后缀为setup的 ...
- elementUI-事件绑定Bug
刚开始使用elementUI的,慢慢的摸索.今天在绑定click事件的时候,在给el-某标签绑定.然后事件失效了.我就很纳闷,这怎么可能失效呢,当我给它的自己元素嵌套了一层div的时候,仍可是使用所以 ...
- Sort of Python
表达式和运算符 什么是表达式? 1+2*3 就是一个表达式,这里的加号和乘号叫做运算符,1.2.3叫做操作数.1+2*3 经过计算后得到的结果是7,就1+2*3 = 7.我们可以将计算结果保存在一个变 ...