python api連結資料庫
阿新 • • 發佈:2019-01-05
零、開發環境
- 作業系統:Ubuntu 16.04 及以上 或 Windows 8 及以上
- Python版本:3.5及以上
- 開發工具:PyCharm
- 資料庫:MySQL
一、環境配置
- 建立虛擬環境
- 通過命令列進入虛擬環境,輸入命令在虛擬環境中安裝MySQL Client:
pip install mysqlclient
二、簡單講解
在這篇文章中我會利用 mysqlclinet 這個庫,對資料庫進行簡單的操作。操作資料庫之前,需要先連線到資料庫(預設資料庫已建立),只需要呼叫 MySQLdb.connect 傳遞資料庫地址、埠號、使用者名稱、密碼和要操作的資料庫名稱,這樣就建立了對資料的連結,程式碼如下:
conn=MySQLdb.connect(
host='192.168.0.102',#資料庫地址
port=3306,#埠號
user='root',#資料庫使用者名稱
passwd='123*asd',#密碼
db='news',#操作的資料庫
charset='utf8' #資料庫編碼規則
)
獲取到資料庫連結就可以對資料庫進行增刪改查的操作了,進行資料庫操作首先要獲取遊標,通過 conn.cursor() 獲得,程式碼如下:
cursor = conn.cursor()
在獲得到遊標後,就可呼叫 execute 來操作資料庫。這裡需要注意,對資料庫進行增、刪、改的時候餘姚在呼叫 execute 方法後,再呼叫commit方法,將記憶體中的資料寫入資料庫。完整程式碼見三
三、示例程式碼
import MySQLdb
class MysqlSearch(object):
def __init__(self):
self.get_conn()
def get_conn(self):
try:
self.con = MySQLdb.connect(
host='192.168.0.102' ,
port=3306,
user='root',
passwd='123*asd',
db='news',
charset='utf8'
)
except MySQLdb.Error as e:
print('Error %d:%s' % (e.args[0], e.args[1]))
def close_conn(self):
try:
if self.con:
self.con.close()
except MySQLdb.Error as e:
print('Error: %s' % e)
def get_one(self):
# 準備SQL
sql = 'select * from news where news_type = %s order by created_at desc; '
# 找到cursor
cursor = self.con.cursor()
# 執行SQL
cursor.execute(sql, ('百家',))
# 拿到結果
rest = dict(zip([k[0] for k in cursor.description], cursor.fetchone()))
# 處理資料
print(rest['title'])
# 關閉cursor/連結
cursor.close()
self.close_conn()
def add_one(self):
try:
# 準備SQL
sql = "INSERT INTO news (title,img_url,content,news_type) VALUE " \
"(%s,%s,%s,%s);"
# 獲取連結和cursor
cursor = self.con.cursor()
# 提交資料到資料庫
cursor.execute(sql, ('標題1', '/static/img/news/01.png', '新聞內容1', '推薦',))
# 提交事務
self.con.commit()
except:
self.con.rollback()
# 關閉cursor和連線
cursor.close()
self.close_conn()
def main():
obj = MysqlSearch()
obj.add_one()
if __name__ == '__main__':
main()