python/292820.html">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安裝目錄下的Scripts目錄下,在文件位置打開cmd,執行pip install MySQL_python-1.2.5-cp27-none-win_amd64.whl
驗證,python(command line)輸入import 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() 以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。
新聞熱點
疑難解答