Python之MySQLdb

Posted Fate0729

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python之MySQLdb相关的知识,希望对你有一定的参考价值。

MySQLdb是用于Python链接Mysql数据库的接口,它实现了Python数据库API规范V2.0,基于MySql C API上建立的。

1. MySQLdb安装

  (1)安装Mysql,参考上篇博客数据库之MySql

  (2)使用pip安装MySQLdb:pip install MySQL-python

      但是安装的时候会报错:error: command \'C:\\\\Program Files\\\\Microsoft Visual Studio 14.0\\\\VC\\\\BIN\\\\cl.exe\' failed with exit status 2

      下面推荐两种方法进行解决:

       a. 下载Python-3.5及上版本扩展的mysql驱动:https://pypi.python.org/pypi/mysqlclient/1.3.10

           之后将下载后的*.whl文件跟pip.exe放在同个目录(一般是在 ..\\Python36\\Scripts\\ 里)

      然后用cmd命令进入到这个目录执行PIP命令安装:pip install mysqlclient-1.3.10-cp36-cp36m-win32.whl 

     b. 安装pymysql代替:pip install pymysql 

注:以上安装方法内容来自原文https://www.cnblogs.com/bu1tcat/p/8283742.html     

2. MySQLdb实例

#coding=utf-8

import sys
import MySQLdb as db
import csv

def parse_csv(csvfile):
    with open(csvfile, \'r\') as pf:
        reader = csv.reader(pf, delimiter=\',\')
        header = next(reader)
        csvdata = []
        for row in reader:
            csvdata.append(row)
    return header, csvdata        
        
    
#链接数据库
def mysqldb_operator(data):
    conn = db.connect(host="localhost", user="root", passwd="", db="xbqr", charset="utf8")
    print (conn)
    print ("datebase connect success!")
    curs = conn.cursor()
    #创建表之前先删除表
    curs.execute("drop table IF EXISTS table_xbqr")
    conn.commit()
    #创建表
    query = "create table table_xbqr(\\
        SupplierName VARCHAR(32),\\
        InvoiceNumber VARCHAR(32),\\
        PartNumber VARCHAR(32),\\
        Cost VARCHAR(32),\\
        PurchaseDate DATE)"
    curs.execute(query)
    conn.commit()
    for row in data:
        curs.execute("INSERT INTO table_xbqr VALUES(%s,%s,%s,%s,%s);", row)
        conn.commit()
    curs.execute("select * from table_xbqr")
    conn.commit()
    selectdata = curs.fetchall()
    print (selectdata)

if __name__ == "__main__":
    csvfile = sys.argv[1]
    print ("csv file name:", csvfile)
    header, data = parse_csv(csvfile)
    print ("header:")
    print (header)
    print ("csvdata:")
    print (data)
    mysqldb_operator(data)

以上是关于Python之MySQLdb的主要内容,如果未能解决你的问题,请参考以下文章

python之MySQLdb模块

Python MySQLdb 意外行为(?)

python连接mysql数据库之MySQLdb/pymysql

Python基础之Mysql

python2.7之MySQLdb模块 for linux安装

Django 错误之 No module named ‘MySQLdb’