python MysqlDb模块安装及其使用详解


Posted in Python onFebruary 23, 2018

python调用mysql数据库通常通过mysqldb模块,简单说下如何调用

1.安装驱动

目前有两个MySQL的驱动,我们可以选择其中一个进行安装:

1. MySQL-python:是封装了MySQL C驱动的Python驱动;

2.mysql-connector-python:是MySQL官方的纯Python驱动。

这里使用MySQL-python驱动,即MySQLdb模块。

命令行安装

pip install python-mysql

或者在pycharm包中安装

源码安装方式

访问: http://www.lfd.uci.edu/~gohlke/pythonlibs/,下载MySQL_python-1.2.5-cp27-none-win_amd64.whl

python MysqlDb模块安装及其使用详解

将其拷贝到Python安装目录下的Scripts目录下,在文件位置打开cmd,执行pip install MySQL_python-1.2.5-cp27-none-win_amd64.whl

验证,python(command line)输入import MySQLdb,没报错,说明安装成功。

python MysqlDb模块安装及其使用详解

测试连接:

#!/usr/bin/python 
# -*- coding: UTF-8 -*-  
import MySQLdb  
# 连接数据库      连接地址  账号  密码   数据库   数据库编码  
db = MySQLdb.connect("localhost", "root", "123456", "test" , charset="utf8") 
 
# 使用cursor()方法获取操作游标 
cursor = db.cursor() 
 
# 使用execute方法执行SQL语句 
cursor.execute("SELECT VERSION()") 
 
# 使用 fetchone() 方法获取一条数据库。 
data = cursor.fetchone() 
 
print "Database version : %s " % data 
 
# 关闭数据库连接 
db.close()

示例1:

#!/usr/bin/python 
# coding=utf-8 
import MySQLdb 
import os, sys 
import json 
class MysqlDb(object): 
 
  def __init__(self): 
    self.host = "127.0.0.1" 
 
  @staticmethod 
  def get_connect(): 
    db = MySQLdb.connect(self.host , "mail_report", "mail_report", "mailawst", charset="utf8") 
    return db 
 
  def get_mysql_info(self,start_time,end_time): 
    tmp = [] 
    db = self.get_connect() 
    sql = 'select send_time,mail_id,mail_addr,server_domain,server_ip,mail_status from real_mail_log where send_time > "%s" and send_time < "%s" limit 10;' % (start_time,end_time) 
    cursor = db.cursor() 
    cursor.execute(sql) 
    values = cursor.fetchall() 
    for i in values: 
      data = {} 
      data["send_time"] = str(i[0]) 
      data["mail_id"] = str(i[1]) 
      data["mail_addr"]= str(i[2]) 
      data["server_domain"] = str(i[3]) 
      data["server_ip"] = str(i[4]) 
      data["mail_status"]= str(i[5].encode('utf8'))   
      tmp.append(data) 
    data = json.dumps(tmp,ensure_ascii=False) 
    db.close() 
    return data 
 
def main(): 
  u = MysqlDb() 
  print u.get_mysql_info('2017-05-01 00:00:02','2017-05-01 00:50:03')  
if __name__ == '__main__': 
  main()

示例2:

#!/usr/bin/python 
# -*- coding: UTF-8 -*-  
import MySQLdb 
 
# 打开数据库连接 
db = MySQLdb.connect("localhost", "root", "123456", "test") 
 
# 使用cursor()方法获取操作游标 
cursor = db.cursor() 
 
# SQL插入语句 
ins_sql = """INSERT INTO EMPLOYEE(FIRST_NAME, 
     LAST_NAME, AGE, SEX, INCOME) 
     VALUES ('yu', 'jie', 20, 'M', 8000)""" 
 
ins_sql1 = 'insert into employee(first_name, last_name, age, sex, income) values (%s, %s, %s, %s, %s)' 
 
# SQL查询语句 
sel_sql = 'select * from employee where first_name = %s' 
 
# SQL更新语句 
upd_sql = 'update employee set age = %s where sex = %s' 
 
# SQL删除语句 
del_sql = 'delete from employee where first_name = %s' 
try: 
  # 执行sql语句 
  # insert 
  cursor.execute(ins_sql) 
  cursor.execute(ins_sql1, ('xu', 'f', 20, 'M', 8000)) 
  # select 
  cursor.execute(sel_sql, ('yu',)) 
  values = cursor.fetchall() 
  print values 
  # update 
  cursor.execute(upd_sql, (24, 'M',)) 
  # delete 
  cursor.execute(del_sql, ('xu',)) 
 
  # 提交到数据库执行 
  db.commit() 
except: 
  # 发生错误时回滚 
  db.rollback() 
 
# 关闭数据库连接 
db.close()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python聚类算法之凝聚层次聚类实例分析
Nov 20 Python
深入理解python中的闭包和装饰器
Jun 12 Python
python的Tqdm模块的使用
Jan 10 Python
python机器学习之贝叶斯分类
Mar 26 Python
Python 创建新文件时避免覆盖已有的同名文件的解决方法
Nov 16 Python
python实现播放音频和录音功能示例代码
Dec 30 Python
python list转置和前后反转的例子
Aug 26 Python
python计算Content-MD5并获取文件的Content-MD5值方式
Apr 03 Python
利用python对excel中一列的时间数据更改格式操作
Jul 14 Python
基于Python的一个自动录入表格的小程序
Aug 05 Python
详解pycharm2020.1.1专业版安装指南(推荐)
Aug 07 Python
利用Python实现学生信息管理系统的完整实例
Dec 30 Python
Python实现k-means算法
Feb 23 #Python
python语言中with as的用法使用详解
Feb 23 #Python
python实现定时自动备份文件到其他主机的实例代码
Feb 23 #Python
Python机器学习算法之k均值聚类(k-means)
Feb 23 #Python
python3调用R的示例代码
Feb 23 #Python
python中kmeans聚类实现代码
Feb 23 #Python
python实现SOM算法
Feb 23 #Python
You might like
用php实现让页面只能被百度gogole蜘蛛访问的方法
2009/12/29 PHP
php后台多用户权限组思路与实现程序代码分享
2012/02/13 PHP
逆序二维数组插入一元素的php代码
2012/06/08 PHP
解析PHP中VC6 X86和VC9 X86的区别及 Non Thread Safe的意思
2013/06/28 PHP
PHP中session跨子域的三种实现方法
2016/07/25 PHP
PHP中SESSION过期设置
2021/03/09 PHP
把textarea中字符串里含有的回车换行替换成&amp;lt;br&amp;gt;的javascript代码
2007/04/20 Javascript
js window.onload 加载多个函数的方法
2009/11/02 Javascript
用XMLDOM和ADODB.Stream实现base64编码解码实现代码
2010/11/28 Javascript
jquery+ajax实现跨域请求的方法
2015/01/20 Javascript
js实现跨域的多种方法
2015/12/25 Javascript
基于javascript实现九宫格大转盘效果
2020/05/28 Javascript
jquery实现轮播图效果
2017/02/13 Javascript
layer提示框添加多个按钮选择的实例
2019/09/12 Javascript
vue的webcamjs集成方式
2020/11/16 Javascript
11个Javascript小技巧帮你提升代码质量(小结)
2020/12/28 Javascript
[01:33:30]DOTA2-DPC中国联赛 正赛 RNG vs Phoenix BO3 第二场 2月5日
2021/03/11 DOTA
Python字符串逐字符或逐词反转方法
2015/05/21 Python
在Django中创建第一个静态视图
2015/07/15 Python
python去除文件中空格、Tab及回车的方法
2016/04/12 Python
解决python升级引起的pip执行错误的问题
2018/06/12 Python
使用python绘制3维正态分布图的方法
2018/12/29 Python
django实现HttpResponse返回json数据为中文
2020/03/27 Python
Numpy中np.max的用法及np.maximum区别
2020/11/27 Python
Booking.com英国官网:全球酒店在线预订网站
2018/04/21 全球购物
通用C#笔试题附答案
2016/11/26 面试题
研发工程师的岗位职责
2013/11/18 职场文书
经典演讲稿范文
2013/12/30 职场文书
大学生饮食配送创业计划书
2014/01/04 职场文书
2014年安全工作总结范文
2014/11/13 职场文书
运动会闭幕词
2015/01/28 职场文书
工作感言一句话
2015/08/01 职场文书
高三语文教学反思
2016/02/16 职场文书
python实现黄金分割法的示例代码
2021/04/28 Python
Python OpenCV 彩色与灰度图像的转换实现
2021/06/05 Python
利用JuiceFS使MySQL 备份验证性能提升 10 倍
2022/03/17 MySQL