溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么在Python中使用Django切換MySQL數(shù)據(jù)庫

發(fā)布時間:2021-05-31 16:48:41 來源:億速云 閱讀:296 作者:Leah 欄目:開發(fā)技術(shù)

今天就跟大家聊聊有關(guān)怎么在Python中使用Django切換MySQL數(shù)據(jù)庫,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

準(zhǔn)備

軟件版本
Django2.1.3
Python3.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 來操作MySQL,實(shí)際上底層還是通過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并且修復(fù)了一些bug。

  • pymysql:純Python實(shí)現(xiàn)的一個驅(qū)動。因?yàn)槭羌働ython編寫的,因此執(zhí)行效率不如MySQL-python。并且也因?yàn)槭羌働ython編寫的,因此可以和Python代碼無縫銜接。

  • MySQL Connector/Python:MySQL官方推出的使用純Python連接MySQL的驅(qū)動。因?yàn)槭羌働ython開發(fā)的。效率不高。

mysqlclient安裝

基于目前的環(huán)境以及版本來說,直接運(yùn)行 pip install mysqlclient 是會報(bào)錯的,具體錯誤,自己執(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ù)庫中生成對應(yīng)的表:

python manage.py makemigrations
python manage.py migrate

看完上述內(nèi)容,你們對怎么在Python中使用Django切換MySQL數(shù)據(jù)庫有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI