python MysqlDb模組使用

2021-08-15 08:32:44 字數 3294 閱讀 1553

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,...