準(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編寫的,因此執(zhí)行效率不如MySQL-python。并且也因?yàn)槭羌働ython編寫的,因此可以和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í)有所幫助,也希望大家多多支持腳本之家。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
