Django 文檔協作翻譯小組人手緊缺,有興趣的朋友可以加入我們,完全公益性質。
交流群:467338606
網站:
http://python.usyiyi.cn/django/index.html
将遺留資料庫整合到Django
雖然Django最适合用來開發新的應用,但也可以将它整合到遺留的資料庫中。Django包含了很多工具,盡可能自動化解決這類問題。
這篇文章假設你了解Django的基礎部分,它們在教程中提及。
一旦你的Django環境建立好之後,你可以按照這個大緻的流程,整合你的現有資料庫。
向Django提供你的資料庫參數
你需要告訴Django你的資料庫連接配接參數,以及資料庫的名稱。請修改DATABASES設定,為’預設’ 連接配接的以下鍵指派:
- NAME
- ENGINE
- USER
- PASSWORD
- HOST
- PORT
自動生成模型
Django自帶叫做inspectdb的工具,可以按照現有的資料庫建立模型。你可以運作以下指令,并檢視輸出:
$ python manage.py inspectdb
通過重定向Unix标準輸出流來儲存檔案:
$ python manage.py inspectdb > models.py
這個特性是一個快捷方式,并不是一個确定的模型生成器。詳見inspectdb文檔 。
一旦你建立好了你的模型,把檔案命名為models.py,然後把它放到你應用的Python包中。然後把應用添加到你的INSTALLED_APPS 設定中。
預設情況下,inspectdb建立未被管理的模型。這就是說,模型的Meta類中的managed = False告訴Django不要管理每個表的建立、修改和删除:
class Person(models.Model):
id = models.IntegerField(primary_key=True)
first_name = models.CharField(max_length=70)
class Meta:
managed = False
db_table = 'CENSUS_PERSONS'
如果你希望Django管理表的生命周期,你需要把managed選項改為 True(或者簡單地把它移除,因為True是預設值)。
安裝Django核心表
接下來,運作migrate指令來安裝所有所需的額外的資料庫記錄,比如背景權限和内容類型:
$ python manage.py migrate
測試和調整
上面就是所有基本的步驟了 —— 到目前為止你會想要調整Django自動生成的模型,直到他們按照你想要的方式工作。嘗試通過Django資料庫API通路你的資料,并且嘗試使用Django背景頁面編輯對象,以及相應地編輯模型檔案。