Python Django切換MySQL數(shù)據(jù)庫實例詳解
準備
軟件 | 版本 |
---|---|
Django | 2.1.3 |
Python | 3.7.1 |
默認使用的是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', } }
實現(xiàn)步驟
我們使用Django 來操作MySQL,實際上底層還是通過Python來操作的。因此我們想要用Django來操作MySQL,首先還是需要安裝一個驅(qū)動程序。在Python3中,驅(qū)動程序有多種選擇。比如有pymysql以及mysqlclient等。
常見的Mysql驅(qū)動介紹:
- MySQL-python:也就是MySQLdb。是對C語言操作MySQL數(shù)據(jù)庫的一個簡單封裝。遵循了Python DB API v2。但是只支持Python2,目前還不支持Python3。
- mysqlclient:是MySQL-python的另外一個分支。支持Python3并且修復了一些bug。
- pymysql:純Python實現(xiàn)的一個驅(qū)動。因為是純Python編寫的,因此執(zhí)行效率不如MySQL-python。并且也因為是純Python編寫的,因此可以和Python代碼無縫銜接。
- MySQL Connector/Python:MySQL官方推出的使用純Python連接MySQL的驅(qū)動。因為是純Python開發(fā)的。效率不高。
mysqlclient安裝
基于目前的環(huán)境以及版本來說,直接運行 pip install mysqlclient 是會報錯的,具體錯誤,自己執(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)以下說明安裝成功:
Installing collected packages: mysqlclient Successfully installed mysqlclient-1.3.13
遷移數(shù)據(jù)庫
Django中通過以下命令來遷移數(shù)據(jù)庫,在每次創(chuàng)建Model時,執(zhí)行該命令,在數(shù)據(jù)庫中生成對應的表:
python manage.py makemigrations python manage.py migrate
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。