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 (1)
Oct 31 Python
python生成随机验证码(中文验证码)示例
Apr 03 Python
对于Python的框架中一些会话程序的管理
Apr 20 Python
在Python的Django框架中生成CSV文件的方法
Jul 22 Python
virtualenv实现多个版本Python共存
Aug 21 Python
关于Django ForeignKey 反向查询中filter和_set的效率对比详解
Dec 15 Python
基于Python实现用户管理系统
Feb 26 Python
聊聊python里如何用Borg pattern实现的单例模式
Jun 06 Python
Python3搭建http服务器的实现代码
Feb 11 Python
vue常用指令代码实例总结
Mar 16 Python
python开发前景如何
Jun 11 Python
python实现银行账户系统
Feb 22 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
基于mysql的bbs设计(二)
2006/10/09 PHP
php中echo()和print()、require()和include()等易混淆函数的区别
2012/02/22 PHP
关于初学PHP时的知识积累总结
2013/06/07 PHP
php实现查询百度google收录情况(示例代码)
2013/08/02 PHP
使用PHP Socket写的POP3类
2013/10/30 PHP
ThinkPHP安装和设置
2015/07/27 PHP
php实现的双色球算法示例
2017/06/20 PHP
Laravel框架实现多个视图共享相同数据的方法详解
2019/07/09 PHP
jquery ajax对特殊字符进行转义防止js注入使用示例
2013/11/21 Javascript
多个jquery.datatable共存,checkbox全选异常的快速解决方法
2013/12/10 Javascript
判断在css加载完毕后执行后续代码示例
2014/09/03 Javascript
JQuery节点元素属性操作方法
2015/06/11 Javascript
详解AngularJS中的表格使用
2015/06/16 Javascript
简单谈谈node.js 版本控制 nvm和 n
2015/10/15 Javascript
基于javascript如何传递特殊字符
2015/11/30 Javascript
封装好的javascript前端分页插件pagination
2016/01/04 Javascript
利用js+css+html实现固定table的列头不动
2016/12/08 Javascript
Vue获取DOM元素样式和样式更改示例
2017/03/07 Javascript
Javascript实现时间倒计时效果
2017/07/15 Javascript
vue+Java后端进行调试时解决跨域问题的方式
2017/10/19 Javascript
原生JS实现的双色球功能示例
2018/02/02 Javascript
vue和react等项目中更简单的实现展开收起更多等效果示例
2018/02/22 Javascript
详解使用create-react-app快速构建React开发环境
2018/05/16 Javascript
通过实例讲解JS如何防抖动
2019/06/15 Javascript
JS实现排行榜文字向上滚动轮播效果
2019/11/26 Javascript
python做量化投资系列之比特币初始配置
2018/01/23 Python
Python查看微信撤回消息代码
2018/06/07 Python
Python实现手写一个类似django的web框架示例
2018/07/20 Python
python装饰器的特性原理详解
2019/12/25 Python
基于django 的orm中非主键自增的实现方式
2020/05/18 Python
世界最大的票务市场:viagogo
2017/02/16 全球购物
工商技校毕业生自荐信
2013/11/15 职场文书
会计专业求职信范文
2014/03/16 职场文书
2014年预备党员学习两会心得体会
2014/03/17 职场文书
中国梦口号
2014/06/13 职场文书
使用CSS3实现按钮悬停闪烁动态特效代码
2021/08/30 HTML / CSS