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开发的实用计算器完整实例
May 10 Python
对Python random模块打乱数组顺序的实例讲解
Nov 08 Python
使用matplotlib中scatter方法画散点图
Mar 19 Python
python多进程读图提取特征存npy
May 21 Python
Django  ORM 练习题及答案
Jul 19 Python
Django实现文件上传和下载功能
Oct 06 Python
python selenium实现发送带附件的邮件代码实例
Dec 10 Python
浅析python标准库中的glob
Mar 13 Python
python 浮点数四舍五入需要注意的地方
Aug 18 Python
PyCharm 安装与使用配置教程(windows,mac通用)
May 12 Python
关于Python OS模块常用文件/目录函数详解
Jul 01 Python
python中if和elif的区别介绍
Nov 07 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
雄兵连:第三季确定会出,不过时间未定,鹤熙是第三季的主角!
2020/03/13 国漫
php简单对象与数组的转换函数代码(php多层数组和对象的转换)
2011/05/18 PHP
PHP文件上传主要代码讲解
2013/09/30 PHP
PHP关于htmlspecialchars、strip_tags、addslashes的解释
2014/07/04 PHP
Javascript 函数中的参数使用分析
2010/03/27 Javascript
网页图片延时加载的js代码
2010/04/22 Javascript
JavaScript可否多线程? 深入理解JavaScript定时机制
2012/05/23 Javascript
js怎么终止程序return不行换jfslk
2013/05/30 Javascript
基于jquery ui的alert,confirm方案(支持换肤)
2015/04/03 Javascript
使用javascript将时间转换成今天,昨天,前天等格式
2015/06/25 Javascript
基于JavaScript实现仿京东图片轮播效果
2015/11/06 Javascript
jQuery设置单选按钮radio选中/不可用的实例代码
2016/06/24 Javascript
手机浏览器 后退按钮强制刷新页面方法总结
2016/10/09 Javascript
JS中substring与substr的用法
2016/11/16 Javascript
浅析JavaScript中break、continue和return的区别
2016/11/30 Javascript
Vue.js bootstrap前端实现分页和排序
2017/03/10 Javascript
详解webpack分离css单独打包
2017/06/21 Javascript
浅析vue-router原理
2018/10/19 Javascript
小程序两种滚动公告栏的实现方法
2019/09/17 Javascript
js 下拉菜单点击旁边收起实现(踩坑记)
2019/09/29 Javascript
numpy linalg模块的具体使用方法
2019/05/26 Python
Python中print函数简单使用总结
2019/08/05 Python
django 配置阿里云OSS存储media文件的例子
2019/08/20 Python
Python 实现顺序高斯消元法示例
2019/12/09 Python
最新Python idle下载、安装与使用教程图文详解
2020/11/28 Python
西班牙英格列斯百货英国官网:El Corte Inglés英国
2017/10/30 全球购物
全球性的在线婚纱礼服工厂:27dress.com
2019/03/21 全球购物
AJAX都有哪些有点和缺点
2012/11/03 面试题
室内设计实习自我鉴定
2013/09/25 职场文书
关于幼儿的自我评价
2013/12/18 职场文书
个人能力自我鉴赏
2014/01/25 职场文书
租房合同协议书
2014/04/09 职场文书
小学生志愿者活动方案
2014/08/23 职场文书
关于十八大的演讲稿
2014/09/15 职场文书
教你如何让spark sql写mysql的时候支持update操作
2022/02/15 MySQL
Java存储没有重复元素的数组
2022/04/29 Java/Android