django如何根據現有數據庫表生成model詳解
題記:django如果要並和原有的數據庫,那麼就需要把現有數據庫的表寫入model.py中。
一,在setting.py中配置好連接數據庫的參數
在setting中的DATABASESZ中配置默認參數,並在INSTALLED_APPS中導入模塊名。
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # 數據庫引擎 'NAME': 'jljupcs', # 數據庫名稱 'HOST': '127.0.0.1', # 數據庫地址,本機 ip 地址 127.0.0.1 'PORT': 3306, # 端口 'USER': 'root', # 數據庫用戶名 'PASSWORD': '', # 數據庫密碼 } } # Application definition INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'conversion', ]
在主項目目錄下導入pymysql
import pymysql pymysql.install_as_MySQLdb()
二,打開cmd或pycharm的Terminal輸入命令
輸入命令:
python manage.py inspectdb > [項目路徑]/models.py
在cmd中輸入命令:
打開pycharm終端輸入命令:
最後在models.py中自動創建瞭數據庫表對應的類。
三,managed = False 刪除或改為 managed = True
修改managed讓之後修改models即可對數據庫進行操作,在終端輸入:
python manage.py inspectdb
提示如果你想讓Django創建、修改和刪除表,請刪除’ managed = False '行
四,執行遷移
在終端輸入:
python manage.py makemigrations
python manage.py migrate
補充:Django根據數據庫表反向生成Model
用過Django的人應該都熟悉下面兩條命令:
# 將Model的改動生成文件 python manage.py make migrations # 此時數據庫中還不會生效 # 提交改動 python manage.py migrate # 此時數據庫就會自動生成我們Model對應的數據表瞭
上面兩條命令都是作用於全局的,但是如果我們隻想改動的app下面的Model或者某個文件中的Model,那就需要指定appname和filename:
# 生成指定app下面的改動文件 python manage.py makemigrations appname # 提交指定app下面指定的改動文件 python manage.py migrate appname filename
既然有根據Model自動生成數據庫表的命令,那麼肯定就有根據數據庫表反向生成Model的命令
python manage.py inspectdb # 使用這條命令,會根據設置的數據庫中的表在自動生成對應的Model代碼,並打印出來
當然也可以直接將打印的代碼直接導入到指定的Model文件中
python manage.py inspectdb > student/models.py # 前提是創建瞭app(student)並且在setting.py文件中註冊過
配置瞭多個數據庫,則還可以配置數據庫別名來指定根據哪個庫中的表來生成Model
python manage.py inspectdb --database default >student/models.py # default是默認的別名
將指定的表生成對應的Model
python manage.py inspectdb --database default table1 table2 >student/models.py
總結
到此這篇關於django如何根據現有數據庫表生成model的文章就介紹到這瞭,更多相關django生成model內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- django連接Mysql中已有數據庫的方法詳解
- 關於django連接mysql數據庫並進行數據庫的創建的問題
- Django一小時寫出賬號密碼管理系統
- Django migrate報錯的解決方案
- Django項目創建的圖文教程