django如何根據(jù)現(xiàn)有數(shù)據(jù)庫(kù)表生成model詳解
題記:django如果要并和原有的數(shù)據(jù)庫(kù),那么就需要把現(xiàn)有數(shù)據(jù)庫(kù)的表寫(xiě)入model.py中。
一,在setting.py中配置好連接數(shù)據(jù)庫(kù)的參數(shù)
在setting中的DATABASESZ中配置默認(rèn)參數(shù),并在INSTALLED_APPS中導(dǎo)入模塊名。
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # 數(shù)據(jù)庫(kù)引擎 'NAME': 'jljupcs', # 數(shù)據(jù)庫(kù)名稱 'HOST': '127.0.0.1', # 數(shù)據(jù)庫(kù)地址,本機(jī) ip 地址 127.0.0.1 'PORT': 3306, # 端口 'USER': 'root', # 數(shù)據(jù)庫(kù)用戶名 'PASSWORD': '', # 數(shù)據(jù)庫(kù)密碼 } } # Application definition INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'conversion', ]
在主項(xiàng)目目錄下導(dǎo)入pymysql
import pymysql pymysql.install_as_MySQLdb()
二,打開(kāi)cmd或pycharm的Terminal輸入命令
輸入命令:
python manage.py inspectdb > [項(xiàng)目路徑]/models.py
在cmd中輸入命令:
打開(kāi)pycharm終端輸入命令:
最后在models.py中自動(dòng)創(chuàng)建了數(shù)據(jù)庫(kù)表對(duì)應(yīng)的類。
三,managed = False 刪除或改為 managed = True
修改managed讓之后修改models即可對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,在終端輸入:
python manage.py inspectdb
提示如果你想讓Django創(chuàng)建、修改和刪除表,請(qǐng)刪除’ managed = False '行
四,執(zhí)行遷移
在終端輸入:
python manage.py makemigrations
python manage.py migrate
補(bǔ)充:Django根據(jù)數(shù)據(jù)庫(kù)表反向生成Model
用過(guò)Django的人應(yīng)該都熟悉下面兩條命令:
# 將Model的改動(dòng)生成文件 python manage.py make migrations # 此時(shí)數(shù)據(jù)庫(kù)中還不會(huì)生效 # 提交改動(dòng) python manage.py migrate # 此時(shí)數(shù)據(jù)庫(kù)就會(huì)自動(dòng)生成我們Model對(duì)應(yīng)的數(shù)據(jù)表了
上面兩條命令都是作用于全局的,但是如果我們只想改動(dòng)的app下面的Model或者某個(gè)文件中的Model,那就需要指定appname和filename:
# 生成指定app下面的改動(dòng)文件 python manage.py makemigrations appname # 提交指定app下面指定的改動(dòng)文件 python manage.py migrate appname filename
既然有根據(jù)Model自動(dòng)生成數(shù)據(jù)庫(kù)表的命令,那么肯定就有根據(jù)數(shù)據(jù)庫(kù)表反向生成Model的命令
python manage.py inspectdb # 使用這條命令,會(huì)根據(jù)設(shè)置的數(shù)據(jù)庫(kù)中的表在自動(dòng)生成對(duì)應(yīng)的Model代碼,并打印出來(lái)
當(dāng)然也可以直接將打印的代碼直接導(dǎo)入到指定的Model文件中
python manage.py inspectdb > student/models.py # 前提是創(chuàng)建了app(student)并且在setting.py文件中注冊(cè)過(guò)
配置了多個(gè)數(shù)據(jù)庫(kù),則還可以配置數(shù)據(jù)庫(kù)別名來(lái)指定根據(jù)哪個(gè)庫(kù)中的表來(lái)生成Model
python manage.py inspectdb --database default >student/models.py # default是默認(rèn)的別名
將指定的表生成對(duì)應(yīng)的Model
python manage.py inspectdb --database default table1 table2 >student/models.py
總結(jié)
到此這篇關(guān)于django如何根據(jù)現(xiàn)有數(shù)據(jù)庫(kù)表生成model的文章就介紹到這了,更多相關(guān)django生成model內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python利用xpath爬取網(wǎng)上數(shù)據(jù)并存儲(chǔ)到django模型中
這篇文章主要介紹了python利用xpath爬取網(wǎng)上數(shù)據(jù)并存儲(chǔ)到django模型中,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02python實(shí)現(xiàn)批量修改服務(wù)器密碼的方法
這篇文章主要介紹了python實(shí)現(xiàn)批量修改服務(wù)器密碼的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2019-08-08基于SpringBoot構(gòu)造器注入循環(huán)依賴及解決方式
這篇文章主要介紹了基于SpringBoot構(gòu)造器注入循環(huán)依賴及解決方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04Python實(shí)現(xiàn)爬取天氣數(shù)據(jù)并可視化分析
這篇文章主要和大家分享一個(gè)用Python實(shí)現(xiàn)的小功能:獲取天氣數(shù)據(jù),進(jìn)行可視化分析,帶你直觀了解天氣情況!感興趣的小伙伴可以學(xué)習(xí)一下2022-02-02Python datatime庫(kù)語(yǔ)法使用詳解
這篇文章主要介紹了Python datatime庫(kù)語(yǔ)法使用詳解,datetime模塊用于是date和time模塊的合集,文章圍繞相關(guān)資料展開(kāi)詳情,感興趣的小伙伴可以擦參考一下2022-07-07python實(shí)現(xiàn)可將字符轉(zhuǎn)換成大寫(xiě)的tcp服務(wù)器實(shí)例
這篇文章主要介紹了python實(shí)現(xiàn)可將字符轉(zhuǎn)換成大寫(xiě)的tcp服務(wù)器,通過(guò)tcp服務(wù)器端實(shí)現(xiàn)針對(duì)字符的轉(zhuǎn)換與返回功能,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-04-04