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的tkinter布局之简单的聊天窗口实现方法
Sep 03 Python
Python使用minidom读写xml的方法
Jun 03 Python
基于python yield机制的异步操作同步化编程模型
Mar 18 Python
Django中利用filter与simple_tag为前端自定义函数的实现方法
Jun 15 Python
python 多线程将大文件分开下载后在合并的实例
Nov 09 Python
Python decimal模块使用方法详解
Jun 08 Python
详解Python设计模式之策略模式
Jun 15 Python
基于python实现复制文件并重命名
Sep 16 Python
Python基于template实现字符串替换
Nov 27 Python
python 模拟登录B站的示例代码
Dec 15 Python
Python基于mediainfo批量重命名图片文件
Dec 29 Python
Python 视频画质增强
Apr 28 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
上海永华YH-R296(华普R-96)12波段立体声收音机的分析和打理
2021/03/02 无线电
在PHP3中实现SESSION的功能(二)
2006/10/09 PHP
JS 网站性能优化笔记
2011/05/24 PHP
yii2中使用Active Record模式的方法
2016/01/09 PHP
php基于curl主动推送最新内容给百度收录的方法
2016/10/14 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
2017/11/14 PHP
js实现简单的可切换选项卡效果
2015/04/10 Javascript
javascript控制层显示或隐藏的方法
2015/07/22 Javascript
详解javascript函数的参数
2015/11/10 Javascript
Java遍历集合方法分析(实现原理、算法性能、适用场合)
2016/04/25 Javascript
jquery实现回车键触发事件(实例讲解)
2017/11/21 jQuery
全新打包工具parcel零配置vue开发脚手架
2018/01/11 Javascript
在JS循环中使用async/await的方法
2018/10/12 Javascript
Vue项目使用localStorage+Vuex保存用户登录信息
2019/05/27 Javascript
基于JQuery实现页面定时弹出广告
2020/05/08 jQuery
微信小程序用户盒子、宫格列表的实现
2020/07/01 Javascript
vue3.0自定义指令(drectives)知识点总结
2020/12/27 Vue.js
[01:59]深扒TI7聊天轮盘语音出处 1
2017/05/11 DOTA
解决Python传递中文参数的问题
2015/08/04 Python
Python的Flask框架的简介和安装方法
2015/11/13 Python
详解Python异常处理中的Finally else的功能
2017/12/29 Python
Python SqlAlchemy动态添加数据表字段实例解析
2018/02/07 Python
python 读文件,然后转化为矩阵的实例
2018/04/23 Python
python3实现随机数
2018/06/25 Python
朴素贝叶斯分类算法原理与Python实现与使用方法案例
2018/06/26 Python
pytorch训练imagenet分类的方法
2018/07/27 Python
python模拟菜刀反弹shell绕过限制【推荐】
2019/06/25 Python
学习Python需要哪些工具
2020/09/04 Python
Html5移动端div固定到底部实现底部导航条的几种方式
2021/03/09 HTML / CSS
英国领先的男装设计师服装独立零售商:Repertoire Fashion
2020/10/19 全球购物
党员组织关系介绍信
2014/02/13 职场文书
法律专业求职信
2014/05/24 职场文书
学习优秀党务工作者先进事迹材料思想报告
2014/09/17 职场文书
领导党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
小学一年级班主任工作经验交流材料
2015/11/02 职场文书
500字作文之难忘的同学
2019/12/20 职场文书