python mysqldb安装_Flask干货:访问数据库——Python数据库框架MySQLPython
上一次我們學(xué)會了數(shù)據(jù)庫安裝,但只是安裝好沒教大家怎么使用!
嘿,別擔(dān)心,這不有我呢嘛。
今天就由我給大家介紹介紹框架MySQL-Python。
01MySQL-Python安裝
框架也是庫,所以跟其他庫安裝一樣,在虛擬環(huán)境下輸入
pip install pymysql進行安裝,如果安裝不成功,試試鏡像安裝:
pip install –i https://pypi.tuna.tsinghua.edu.cn/simplepymysql安裝好以后就能通過python操作數(shù)據(jù)庫了。
02通過Python操作數(shù)據(jù)庫對象
1、創(chuàng)建MySQL連接對象
開啟MySQL自帶命令行,輸入命令create database wuhao; 創(chuàng)建名為“wuhao”的數(shù)據(jù)庫,并用命令?show databases; 查看。
創(chuàng)建數(shù)據(jù)庫成功后,我們相當于擁有一個倉庫啦,但里面還啥都沒有,沒有分區(qū)、沒有貨物、沒有標號… …啥都沒有,所以還要建立一張表,相當于在倉庫分個區(qū)。
先用命令 use wuhao; 切換到數(shù)據(jù)庫下,表示你已經(jīng)進入到倉庫里面了;再用命令 create table user(username varchar(30), email varchar(50)); 創(chuàng)建名為“user”的表格和username、email字段,表示你在倉庫中劃分出一個區(qū)域,同時在區(qū)域內(nèi)又分成多個小格用來存放指定貨物。
萬事俱備,可以往倉庫搬貨嘍!
使用命令 insert into user values (‘No5Programmer’, ‘123456789@qq.com’); 添加測試數(shù)據(jù),并用命令select * from user; 查看,結(jié)果如圖:
然后新建app.py文件,內(nèi)容如下:
from flask import Flaskimport pymysqlpymysql.install_as_MySQLdb()app = Flask(__name__)conn = pymysql.Connect( host = '127.0.0.1', port = 3306, user = 'root', passwd = 'root', db = 'wuhao', charset = 'utf8')使用import導(dǎo)入pymysql,然后建立數(shù)據(jù)庫連接對象conn。參數(shù)說明如下:
user:登錄數(shù)據(jù)庫的用戶名,該參數(shù)不能為空
passwd:錄數(shù)據(jù)庫的密碼,該參數(shù)可以為空
db:連接的數(shù)據(jù)庫的名稱,該參數(shù)不能為空
charset:字符集編碼,注意不加“-”,該參數(shù)不能為空
Python建立與數(shù)據(jù)的連接,事實上是建立一個MySQLdb.connect()的連接對象,通過連接對象就能和數(shù)據(jù)庫進行數(shù)據(jù)交互。常用的方法有下面4種:
cursor():創(chuàng)建游標對象并返回
commit():提交當前事務(wù)操作,對數(shù)據(jù)庫的增、刪、改、查先保存到緩存里,當執(zhí)行此方法時再提交給數(shù)據(jù)庫
rollback():回滾當前事務(wù)操作,取消前面操作
close():關(guān)閉數(shù)據(jù)庫連接
2、獲取游標對象
建立連接后,操作數(shù)據(jù)庫就需要讓Python對數(shù)據(jù)庫執(zhí)行SQL語句。
想象一下,現(xiàn)在是程序自己在用鼠標點擊目標文件,所以首要任務(wù)是先找到游標,獲得游標對象。
cursor = conn.cursor()sql = "select * from user"cursor.execute(sql)上面的第一行代碼就獲取了游標,然后用execute()操作。
3、獲取所有記錄列表
在上面代碼的基礎(chǔ)上繼續(xù)編寫:
results = cursor.fetchall()for row in results: username = row[0] email = row[1] print("emial=%s, username=%s" % (email, username))cursor.close()conn.close()可以看出,程序在遍歷user表格中的數(shù)據(jù)并進行打印。除了代碼中用到的方法,cursor對象還支持下列方法:
execute():用于執(zhí)行一個數(shù)據(jù)庫的查詢命令
fetchone():獲取結(jié)果集中的下一行
fetchmany(size):獲取結(jié)果集中的下(size)行
fetchall():獲取結(jié)果集中剩下的所有行
rowcount():最近一次執(zhí)行數(shù)據(jù)庫查詢命令后,返回數(shù)據(jù)的行數(shù)
close():關(guān)閉游標
實戰(zhàn)
完整的app.py代碼如下:
from flask import Flaskimport pymysqlpymysql.install_as_MySQLdb()app = Flask(__name__)conn = pymysql.Connect( host = '127.0.0.1', port = 3306, user = 'root', passwd = 'root', db = 'wuhao', charset = 'utf8')cursor = conn.cursor()sql = "select * from user"cursor.execute(sql)results = cursor.fetchall()for row in results: username = row[0] email = row[1] print("emial=%s, username=%s" % (email, username))cursor.close()conn.close()@app.route('/')def index(): return 'Hello World!'if __name__ == '__main__': app.run()運行后可以看到如下結(jié)果:
成功!因為用的print(),所以是在命令行打印。
04這次的內(nèi)容主要是學(xué)習(xí)如何連接數(shù)據(jù)庫,關(guān)鍵點在于獲取游標對象,有游標才能控制,就像我們自己在操作一樣。
下一次將說說如何更新數(shù)據(jù),對數(shù)據(jù)庫進行增、刪、改、查。
你確定不關(guān)注我一波?
- END -總結(jié)
以上是生活随笔為你收集整理的python mysqldb安装_Flask干货:访问数据库——Python数据库框架MySQLPython的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: laravel 分词搜索匹配度_DSSM
- 下一篇: druid连接池初始化慢_从零开始手写