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的for和break循环结构中使用else语句的技巧
May 24 Python
Python中操作mysql的pymysql模块详解
Sep 13 Python
python 爬虫出现403禁止访问错误详解
Mar 11 Python
Django验证码的生成与使用示例
May 20 Python
Python内置模块turtle绘图详解
Dec 09 Python
Python学习笔记之图片人脸检测识别实例教程
Mar 06 Python
python 在某.py文件中调用其他.py内的函数的方法
Jun 25 Python
pytorch自定义初始化权重的方法
Aug 17 Python
浅谈python多线程和多线程变量共享问题介绍
Apr 17 Python
使用Numpy对特征中的异常值进行替换及条件替换方式
Jun 08 Python
Python中X[:,0]和X[:,1]的用法
May 10 Python
Python字典的基础操作
Nov 01 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
如何使用Strace调试工具
2013/06/03 PHP
php curl基本操作详解
2013/07/23 PHP
php实现在线生成条形码示例分享(条形码生成器)
2013/12/30 PHP
List all the Databases on a SQL Server
2007/06/21 Javascript
关于锚点跳转及jQuery下相关操作与插件
2012/10/01 Javascript
JavaScript编程的10个实用小技巧
2014/04/18 Javascript
JavaScript点击按钮后弹出透明浮动层的方法
2015/05/11 Javascript
如何高效率去掉js数组中的重复项
2016/04/12 Javascript
Angular 4.x 路由快速入门学习
2017/05/03 Javascript
jquery一键控制checkbox全选、反选或全不选
2017/10/16 jQuery
vue+element-ui+ajax实现一个表格的实例
2018/03/09 Javascript
vue router 用户登陆功能的实例代码
2019/04/24 Javascript
vue-cli history模式实现tomcat部署报404的解决方式
2019/09/06 Javascript
Vue状态模式实现窗口停靠功能(灵动、自由, 管理后台Admin界面)
2020/03/06 Javascript
基于VUE实现简单的学生信息管理系统
2021/01/13 Vue.js
Python 对象中的数据类型
2017/05/13 Python
Python实现的将文件每一列写入列表功能示例【测试可用】
2018/03/19 Python
python 获取list特定元素下标的实例讲解
2018/04/09 Python
python操作excel的方法
2018/08/16 Python
python3 自动识别usb连接状态,即对usb重连的判断方法
2019/07/03 Python
使用python脚本自动创建pip.ini配置文件代码实例
2019/09/20 Python
解决pycharm上的jupyter notebook端口被占用问题
2019/12/17 Python
Python如何爬取51cto数据并存入MySQL
2020/08/25 Python
18-35岁旅游团的全球领导者:Contiki
2017/02/08 全球购物
Kivari官网:在线购买波西米亚服装
2018/10/29 全球购物
Calphalon美国官网:美国顶级锅具品牌
2020/02/05 全球购物
财务会计毕业生自荐信
2013/11/02 职场文书
运动会领导邀请函
2014/01/10 职场文书
《锄禾》教学反思
2014/04/08 职场文书
法律顾问服务方案
2014/05/15 职场文书
城市规划应届生推荐信
2014/09/08 职场文书
事业单位聘任报告
2015/03/02 职场文书
2015年治庸问责工作总结
2015/07/27 职场文书
团结主题班会
2015/08/13 职场文书
MySQL数据库完全卸载的方法
2022/03/03 MySQL
利用Python脚本写端口扫描器socket,python-nmap
2022/07/23 Python