前言
在Django項(xiàng)目使用數(shù)據(jù)庫(kù)時(shí),可以有三種方式:
????????1.直接編寫(xiě)app內(nèi)的models文件,然后自動(dòng)生成MySQL數(shù)據(jù)庫(kù)
????????2.直接在MySQL中將數(shù)據(jù)庫(kù)編寫(xiě)好,然后不使用models,而是在views中利用PyMySQL編寫(xiě)數(shù)據(jù)庫(kù)鏈接等操作
? ? ? ? 3.MySQL庫(kù)自動(dòng)生成models文件進(jìn)行連接使用
這里詳解第三種方式
具體步驟
1.編MySQL數(shù)據(jù)庫(kù)
? ? ? ? 在這一步驟中,我們需要將項(xiàng)目需要的庫(kù)創(chuàng)建完畢,包括每個(gè)表中具體的主外鍵約束、非空約束、以及數(shù)據(jù)存儲(chǔ)的考量,以及各種實(shí)體表中的關(guān)系,這里推薦先將關(guān)系表寫(xiě)出來(lái),在根據(jù)關(guān)系表畫(huà)出對(duì)應(yīng)的ER圖,接下來(lái)再進(jìn)行數(shù)據(jù)庫(kù)的創(chuàng)建,這里不進(jìn)行贅述。
注意:盡量讓數(shù)據(jù)庫(kù)中的命名為英文!否則后面的步驟中會(huì)出現(xiàn)問(wèn)題!
2.創(chuàng)建Django項(xiàng)目,并導(dǎo)入相應(yīng)的第三方庫(kù)
? ? ? ? 這一步驟中,我們需要將Django項(xiàng)目創(chuàng)建好后,導(dǎo)入相應(yīng)第三方庫(kù),即簡(jiǎn)單配置環(huán)境
這里我使用的是Django4.1.1,Python3.10
需要的第三方庫(kù)共有兩個(gè):
? ? ? ? PyMySQL以及mysqlclient
????????如果使用的是PyCharm提供的虛擬環(huán)境,則直接在Files->Settings->Project:項(xiàng)目名-> python interpreter中找到左上角的“+”,點(diǎn)擊后搜索相應(yīng)的庫(kù),單擊Install Package進(jìn)行安裝
? ? ? ? 如果使用的是本地環(huán)境,則找到Python環(huán)境下pip工具所在路徑下(一般在Python環(huán)境下的Scripts路徑下),進(jìn)入cmd界面進(jìn)行下載安裝:pip install [要安裝的第三方庫(kù)的名字]
3.配置Django的settings文件,與要使用的數(shù)據(jù)庫(kù)進(jìn)行鏈接
? ? ? ? 這一步驟中,我們先找到與我們創(chuàng)建Django項(xiàng)目路徑下與項(xiàng)目同名的文件夾,打開(kāi)之后,找到settings.py文件
????????接下來(lái)我們找到此文件中的DATABASE部分,默認(rèn)為下圖:
之后我們將此部分編寫(xiě)為:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'dbtest',
'HOST': '127.0.0.1',
'USER': 'root',
'PASSWORD': '123456',
'PORT':3306,
}
}
?其中
????????NAME字段需要填寫(xiě)我們需要鏈接的數(shù)據(jù)庫(kù)(DataBase)庫(kù)名
? ? ? ? HOST字段為我們使用的服務(wù)器ip,這里為主機(jī)默認(rèn)ip
? ? ? ? USER字段為我們數(shù)據(jù)庫(kù)的用戶名
? ? ? ? PASSWORD字段為我們數(shù)據(jù)庫(kù)的密碼
? ? ? ? PORT為數(shù)據(jù)庫(kù)端口
注意:以上所有字段都需要大寫(xiě)!否則會(huì)出現(xiàn)錯(cuò)誤!
4.利用MySQL已有庫(kù)生成models文件
如果在PyCharm中,則找到左下角Terminal? ,如果是在本地直接進(jìn)行,則找到manage.py文件所在路徑下打開(kāi)cmd命令行
? ? ? ? ?接下來(lái)輸入:python manage.py inspectdb > models.py?
此命令執(zhí)行完畢后,會(huì)在manage.py同路徑下創(chuàng)建一個(gè)models.py文件,此models.py文件中的數(shù)據(jù)即為根據(jù)MySQL數(shù)據(jù)庫(kù)自動(dòng)生成的models
注意:盡量讓數(shù)據(jù)庫(kù)中的命名為英文,否則部分表名及屬性不可自動(dòng)生成!
?5.在app中的models添加需要使用到的表
????????上一步生成的models.py文件中的class即為數(shù)據(jù)庫(kù)中的表!
? ? ? ? 在進(jìn)行此步驟之前,需要確保app已經(jīng)在settings中注冊(cè)!??
?①找到我們創(chuàng)建的app路徑下的models.py文件,將所需要的表從上一步中的models文件中直接復(fù)制粘貼到app下的models中
②修改managed值為T(mén)rue
?6.修改Django鏈接數(shù)據(jù)庫(kù)到新庫(kù),或沿用當(dāng)前數(shù)據(jù)庫(kù),進(jìn)行鏈接
打開(kāi)Terminal,依次執(zhí)行:
python manage.py makemigrations
python manage.py migrate
?
不報(bào)錯(cuò)即成功!文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-404687.html
愿諸君繼續(xù)努力,向著夢(mèng)想前進(jìn)!?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-404687.html
到了這里,關(guān)于MySQL數(shù)據(jù)庫(kù)自動(dòng)生成Models文件導(dǎo)入Django的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!