Python Django切換MySQL數(shù)據(jù)庫(kù)實(shí)例詳解
準(zhǔn)備
| 軟件 | 版本 |
|---|---|
| Django | 2.1.3 |
| Python | 3.7.1 |
默認(rèn)使用的是sqlite3
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
切換為MySql:
# settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'book',
'USER': 'root',
'PASSWORD': '123456',
'HOST': '127.0.0.1',
'POST': '3306',
}
}
實(shí)現(xiàn)步驟
我們使用Django 來(lái)操作MySQL,實(shí)際上底層還是通過(guò)Python來(lái)操作的。因此我們想要用Django來(lái)操作MySQL,首先還是需要安裝一個(gè)驅(qū)動(dòng)程序。在Python3中,驅(qū)動(dòng)程序有多種選擇。比如有pymysql以及mysqlclient等。
常見(jiàn)的Mysql驅(qū)動(dòng)介紹:
- MySQL-python:也就是MySQLdb。是對(duì)C語(yǔ)言操作MySQL數(shù)據(jù)庫(kù)的一個(gè)簡(jiǎn)單封裝。遵循了Python DB API v2。但是只支持Python2,目前還不支持Python3。
- mysqlclient:是MySQL-python的另外一個(gè)分支。支持Python3并且修復(fù)了一些bug。
- pymysql:純Python實(shí)現(xiàn)的一個(gè)驅(qū)動(dòng)。因?yàn)槭羌働ython編寫(xiě)的,因此執(zhí)行效率不如MySQL-python。并且也因?yàn)槭羌働ython編寫(xiě)的,因此可以和Python代碼無(wú)縫銜接。
- MySQL Connector/Python:MySQL官方推出的使用純Python連接MySQL的驅(qū)動(dòng)。因?yàn)槭羌働ython開(kāi)發(fā)的。效率不高。
mysqlclient安裝
基于目前的環(huán)境以及版本來(lái)說(shuō),直接運(yùn)行 pip install mysqlclient 是會(huì)報(bào)錯(cuò)的,具體錯(cuò)誤,自己執(zhí)行以下就知道了。
解決辦法:
去 https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient 下載指定文件,我用的是python3.7,win環(huán)境是64位,所以下載了mysqlclient-1.3.13-cp37-cp37m-win_amd64.whl。
然后執(zhí)行:
pip3 install mysqlclient-1.3.13-cp37-cp37m-win_amd64.whl
如果出現(xiàn)以下說(shuō)明安裝成功:
Installing collected packages: mysqlclient Successfully installed mysqlclient-1.3.13
遷移數(shù)據(jù)庫(kù)
Django中通過(guò)以下命令來(lái)遷移數(shù)據(jù)庫(kù),在每次創(chuàng)建Model時(shí),執(zhí)行該命令,在數(shù)據(jù)庫(kù)中生成對(duì)應(yīng)的表:
python manage.py makemigrations python manage.py migrate
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python簡(jiǎn)單過(guò)濾字母和數(shù)字的方法小結(jié)
這篇文章主要介紹了Python簡(jiǎn)單過(guò)濾字母和數(shù)字的方法,涉及Python基于內(nèi)置函數(shù)與正則表達(dá)式進(jìn)行字母和數(shù)字過(guò)濾的相關(guān)操作技巧,需要的朋友可以參考下2019-01-01
Python入門(mén)開(kāi)發(fā)教程 windows下搭建開(kāi)發(fā)環(huán)境vscode的步驟詳解
大家都知道Python是跨平臺(tái)的,它可以運(yùn)行在Windows、Mac和各種Linux/Unix系統(tǒng)上。在Windows上寫(xiě)Python程序,放到Linux上也是能夠運(yùn)行的,今天給大家分享Python開(kāi)發(fā)環(huán)境搭建vscode的步驟,一起看看吧2021-07-07
Python實(shí)現(xiàn)多級(jí)目錄壓縮與解壓文件的方法
這篇文章主要介紹了Python實(shí)現(xiàn)多級(jí)目錄壓縮與解壓文件的方法,涉及Python針對(duì)文件路徑的遍歷、判斷以及文件壓縮、解壓縮等相關(guān)操作技巧,需要的朋友可以參考下2018-09-09
Python執(zhí)行時(shí)間的幾種計(jì)算方法
這篇文章主要介紹了Python執(zhí)行時(shí)間的幾種計(jì)算方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
pandas實(shí)現(xiàn)滑動(dòng)窗口的示例代碼
本文主要介紹了pandas實(shí)現(xiàn)滑動(dòng)窗口的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03
解決python升級(jí)引起的pip執(zhí)行錯(cuò)誤的問(wèn)題
今天小編就為大家分享一篇解決python升級(jí)引起的pip執(zhí)行錯(cuò)誤的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06

