一、导入  

        import pymysql

二、连接

def connect_wxremit_db():
return pymysql.connect(host='10.123.5.28',
port=3306,
user='root',
password='root1234',
database='db_name',
charset='latin1')
'''
hots:主机地址
port:端口号
user:用户
password:密码
database:数据库
charset:表
'''

三、查询

def query_country_name(cc2):
sql_str = ("SELECT Fcountry_name_zh"
+ " FROM t_country_code"
+ " WHERE Fcountry_2code='%s'" % (cc2))
logging.info(sql_str) #将内容写入日志 con = mysql_api.connect_wxremit_db() #执行连接数据库
cur = con.cursor() #使用cursor()方法获取操作游标
cur.execute(sql_str) #使用execute方法执行SQL语句
rows = cur.fetchall()#接收全部的返回结果行.
cur.close()
con.close() assert len(rows) == 1, 'Fatal error: country_code does not exists!'
return rows[0][0]

四、插入

def insert_file_rec(self, file_name, file_md5):
#连接数据库
con = mysql_api.connect_wxremit_db()
#获取操作游标
cur = con.cursor()
try:
#SQL语句
sql_str = ("INSERT INTO t_forward_file (Ffile_name, Ffile_md5)",
+ " VALUES ('%s', '%s')" % (file_name, file_md5))
#执行SQL语句
cur.execute(sql_str)
#提交到数据库
con.commit()
except:
#插入数据失败
con.rollback()
#写入日志
logging.exception('Insert operation error')
#当程序出现错误,通过raise显示地引发异常。后面的语句将不能执行
raise
finally:
cur.close()
con.close()

五、批量插入

remit_ids = [('', 'CAD'), ('', 'HKD')]

con = mysql_api.connect_wxremit_db()
cur = con.cursor()
try:
cur.executemany("INSERT INTO t_order (Fremit_id, Fcur_type, Fcreate_time"
+ " VALUES (%s, %s, now())", new_items)
assert cur.rowcount == len(remit_ids), 'my error message'
con.commit()
except Exception as e:
con.rollback()
logging.exception('Insert operation error')
finally:
cur.close()
con.close()

六、更新

def update_refund_trans(self, remit_id):
con = mysql_api.connect_wxremit_db()
cur = con.cursor()
try:
sql_str = ("SELECT Fremit_id"
+ " FROM t_wxrefund_trans"
+ " WHERE Fremit_id='%s'" % remit_id
+ " FOR UPDATE")
logging.info(sql_str) cur.execute(sql_str)
assert cur.rowcount == 1, 'Fatal error: The wx-refund record be deleted!' sql_str = ("UPDATE t_wxrefund_trans"
+ " SET Fcheck_amount_flag=1"
+ ", Fmodify_time=now()"
+ " WHERE Fremit_id='%s'" % remit_id
logging.info(sql_str)
cur.execute(sql_str) assert cur.rowcount == 1, 'The number of affected rows not equal to 1'
con.commit()
except:
con.rollback()
logging.exception('Update operation error')
raise
finally:
cur.close()
con.close()

七、删除

sql = "DELETE FROM EMPLOYEE WHERE AGE > %s" % (20)

Python——Mysql的更多相关文章

  1. Python—>Mysql—>Dbvisualizer

    MySQLdb: https://pypi.python.org/pypi/MySQL-python/1.2.4 import MySQLdb 1.Download Connector/Python: ...

  2. Python Mysql 篇

    Python 操作 Mysql 模块的安装 linux: yum install MySQL-python window: http://files.cnblogs.com/files/wupeiqi ...

  3. Python MySQL ORM QuickORM hacking

    # coding: utf-8 # # Python MySQL ORM QuickORM hacking # 说明: # 以前仅仅是知道有ORM的存在,但是对ORM这个东西内部工作原理不是很清楚, ...

  4. python 之路,Day11(上) - python mysql and ORM

    python 之路,Day11 - python mysql and ORM   本节内容 数据库介绍 mysql 数据库安装使用 mysql管理 mysql 数据类型 常用mysql命令 创建数据库 ...

  5. 树莓派安装ubuntu-server,配置镜像,安装python/mysql/samba记录

    目标: 1/在raspberrypi 3B上安装ubuntu-server 2/配置好python/mysql/samba等服务,实现爬虫稳定运行我的硬件准备: 1/raspberrypi 3B 2/ ...

  6. Python/ MySQL练习题(一)

    Python/ MySQL练习题(一) 查询“生物”课程比“物理”课程成绩高的所有学生的学号 SELECT * FROM ( SELECT * FROM course LEFT JOIN score ...

  7. python/MySQL练习题(二)

    python/MySQL练习题(二) 查询各科成绩前三名的记录:(不考虑成绩并列情况) select score.sid,score.course_id,score.num,T.first_num,T ...

  8. Python/MySQL(一、基础)

    Python/MySQL(一.基础) mysql: MYSQL : 是用于管理文件的一个软件 -socket服务端 (先启动) -本地文件操作 -解析 指令[SQL语句] -客户端软件 (各种各样的客 ...

  9. Python/MySQL(二、表操作以及连接)

    Python/MySQL(二.表操作以及连接) mysql表操作: 主键:一个表只能有一个主键.主键可以由多列组成. 外键 :可以进行联合外键,操作. mysql> create table y ...

  10. Python/MySQL(三、pymysql使用)

    Python/MySQL(三.pymysql使用) 所谓pymysql就是通过pycharm导入pymysql模块进行远程连接mysql服务端进行数据管理操作. 一.在pycharm中导入pymysq ...

随机推荐

  1. C++系列总结——构造与析构

    前言 在使用资源前,我们需要做一些准备工作保证资源能正常使用,在使用完资源后,我们需要做一些扫尾工作保证资源没有泄露,这就是构造与析构了,这和编程语言是无关的,而是使用资源的一种方式.C++只不过是把 ...

  2. Django学习之二:Django 项目创建 和 应用创建

    Django 项目创建 和 应用创建 创建一个Django项目 都是在相应平台的命令行环境下操作: 1. 进入用于存放项目的目录下 1.1 windows下切换目录:先进入具体的分区磁盘中如E盘就输入 ...

  3. Windows7 WIN 7 64位 环境编译6sv2.1版本的大气传输模型

    从来没见过Fortran...这次为了添加国产卫星光谱响应的支持,只能从零开始肯了. 6S模型主页:http://6s.ltdri.org/index.html. 下载最新的2015年更新的6SV2. ...

  4. 解决 winform打开网页 和WebBrowser打开链接360误报拦截的问题

    以下方法我已经在自己电脑上验证通过,其他电脑并未测试,请广大读者自行验证并反馈,如果有更好的方法请指教. 在winform中如果使用这种方法弹出网页,例如这样 Process.start(" ...

  5. Thinkphp5整合微信扫码支付开发实例

    ThinkPHP框架是比较多人用的,曾经做过的一个Thinkphp5整合微信扫码支付开发实例,分享出来大家一起学习 打开首页生成订单,并显示支付二维码 public function index() ...

  6. 一幅图,看懂中国CMMI

    以下数据由Fancier凡奉信息根据历年CMMI Institute公布的CMMI评估结果的汇总整理.数据跨度2008-2017年,包含对中国CMMI与全球CMMI的不同等级.版本的统计.

  7. WordCount

    一.Gitee地址:https://gitee.com/zjgss99/WordCount 二.项目分析: 对程序设计语言源文件统计字符数.单词数.行数,统计结果以指定格式输出到默认文件中,以及其他扩 ...

  8. 从0开始的Python学习002python的数据类型

    在创建变量的时候不用声明数据类型 # 创建变量 a = 10 # 打印变量值 print(a) 结果如下: 这种感觉和Java有很大的不同,感觉python很神奇,数据的类型是python自己决定的. ...

  9. c/c++ 继承与多态 容器与继承2

    c/c++ 继承与多态 容器与继承1说明了容器里使用继承关系的方法,这里再弄一个练习,巩固一下. 做一个类Basket,它有个multiset成员,key是智能指针std::shared_ptr< ...

  10. Java 集合系列(三)—— LinkedList

    以脑图的形式来展示Java集合知识,让零碎知识点形成体系 LinkedList    LinkedList是一种可以在任何位置进行高效地插入和删除操作的有序序列.   它的最基本存储结构是一个节点:每 ...