1. 程式人生 > 實用技巧 ># django通過操作admin對原有的資料庫進行操作

# django通過操作admin對原有的資料庫進行操作

django通過操作admin對原有的資料庫進行操作

計算機/cs操作記錄

資料庫,各種表結構已經建立好了,甚至連資料都有了,此時,我要用Django管理這個資料庫,ORM對映怎麼辦???
Django是最適合所謂的green-field開發,即從頭開始一個新的專案
但是呢,Django也支援和以前遺留的資料庫和應用相結合的。
Django的資料庫層從Python程式碼生成SQL schemas。但是對於遺留的資料庫,你已經用於SQL schemas,這種情況下你需要為你已經存在的資料庫表寫模型(為了使用資料庫的API),幸運的是,Django自帶有通過閱讀你的資料庫表規劃來生成模型程式碼的輔助工具 manage.py inspectdb

我們就需要根據資料庫去自動生成新的models檔案

python manage.py inspectdb #簡單可以看一下自動對映成的models中的內容

匯出並且去代替models.py

python manage.py inspectdb > models.py
這樣你就會發現在manage.py的同級目錄下生成了一個models.py檔案
使用這個models.py檔案覆蓋app中的models檔案。
如果完成了以上的操作,生成的是一個不可修改/刪除的models,修改meta class中的managed = True則可以去告訴django可以對資料庫進行操作

此時,我們再去使models.py和資料庫進行同步

python manage.py migrate

為什麼使用admin

使用Django Admin可以快速對資料庫的各個資料表進行增刪查改。一行程式碼即可增加對一個模型(資料表)的增刪查改。試想如果你要自己手動編寫後臺對一個模型進行增刪查改,你一般需要4個urls, 4個檢視函式或通用檢視和4個模板。當一個專案比較大包含多個app時,而每個app又包含多個模型(資料表)時, 那麼編寫和維護整個專案管理後臺的工作量可想而知。Django Admin所做就是將所有需要管理的模型(資料表)集中在一個平臺,你不僅可以選擇性地管理模型(資料表), 你還可以快速訂製資料條目查詢,過濾和搜尋條件。

建立超級使用者superuser

使用django admin的第一步是建立超級使用者(superuser)。進入你的專案資料夾, 使用如下命名,輸入使用者名稱和密碼即可建立管理員。
$ python manage.py createsuperuser
此時你訪問http://127.0.0.1:8000/admin/, 你就可以看到登入介面了。

註冊模型(資料表)

假設你有一個叫blog的APP, 裡面包含了一個叫Article(文章)的模型, 你想對文章進行管理, 你只需找到blgo的admin.py,使用admin.site.register方法註冊Article模型。程式碼如下所示:

from django.contrib import admin
from .models import Article
#Register your models here.
admin.site.register(Article)