python呼叫mysql資料庫通常通過mysqldb模組,簡單說下如何呼叫
1.安裝驅動
目前有兩個mysql的驅動,我們可以選擇其中乙個進行安裝:
1. mysql-python:是封裝了mysql c驅動的python驅動;
2.mysql-connector-python:是mysql官方的純python驅動。
這裡使用mysql-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'))
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, ***, income)
values ('yu', 'jie', 20, 'm', 8000)"""
ins_sql1 = 'insert into employee(first_name, last_name, age, ***, 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 *** = %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 MySQLdb模組程式設計初探
import mysqldb conn mysqldb.connect host localhost user root passwd sa db mytable charset utf8 提供的connect方法用來和資料庫建立連線,接收數個引數,返回連線物件.比較常用的引數包括 host 資料庫...
python MySQLdb學習筆記
mysqldb庫是python訪問mysql的連線庫,最近專案中需要使用,將學習使用所得整理如下。mysqldb windows下執行需要 libmysql.dll libmmd.dll 和 libguide40.dll 可以放在sitepackage下也可以在windows system32 學習...
python MySQLdb連線mysql失敗問題
mysql exceptions.operationalerror 2002,can t connect to local mysql 在很多種情況下,如果配置檔案沒有出錯的話,將機器重啟,確認關閉防火牆,確定啟動了mysql即可。網上很不錯講解 最近了解了一下django,資料庫選用了mysql,...