上次為大家介紹了 Django 的模型,通過模型就可以操作數(shù)據(jù)庫,從而就可以改變頁面的展示內(nèi)容,那問題來了,我們只能通過手動編輯模型文件來配置模型嗎?當(dāng)然不是,Django 為我們提供了強(qiáng)大的工具,可以全自動地根據(jù)模型創(chuàng)建后臺管理界面。管理界面不是為網(wǎng)站的訪問者準(zhǔn)備,而是為站點管理者準(zhǔn)備的。有了這個功能,站點管理人員方便使用管理系統(tǒng)來對數(shù)據(jù)進(jìn)行操作。
運行 Django Admin
首先我們上次我們已經(jīng)創(chuàng)建了?TestProject
?項目,并且我們在這個項目中已經(jīng)創(chuàng)建了?polls
?應(yīng)用,并在該應(yīng)用下我們創(chuàng)建了兩個 models:Question
?和?Choice
。代碼如下所示:
# polls/models.py
from django.db import models
class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField('發(fā)布日期')
class Choice(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0)
接下來我們繼續(xù)這個項目進(jìn)行修改,并運行 Django Admin 管理工具。
修改配置文件
在項目?TestProject
?目錄下找到?settings.py
?文件 ,打開編輯?INSTALLED_APPS
?并增加?django.contrib.admin
?等相關(guān)項,django.contrib
?是一套龐大的功能集,它是 Django 基本代碼的組成部分,而 Django 自動管理工具是?django.contrib
?的一部分。編輯后結(jié)果如下:???????
# TestProject/settings.py
INSTALLED_APPS = [
'polls.apps.PollsConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
配置訪問路徑
在上面目錄同級,有個?urls.py
?文件,用來配置管理工具的訪問路徑。當(dāng)然通常我們在生成項目時會在?urls.py
?中自動設(shè)置好,我們只需去掉注釋即可,請看如下代碼:???????
# TestProject/settings.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('polls/', include('polls.urls')),
path('admin/', admin.site.urls), # 配置 /admin 路徑
]
好了,一切都配置完成,下面我們就來運行下 Django 管理工具,和以前一樣,先通過命令?python manage.py runserver 127.0.0.1:8080
?啟動本地 server,然后通過訪問 URL?http://127.0.0.1:8080/admin
?就可以跳轉(zhuǎn)到管理工具登陸頁面,如下圖所示:
登陸
已經(jīng)看到登陸頁面,接下來我們就需要輸入用戶名密碼進(jìn)行登陸。
初始化超級管理員
Django admin 管理工具的用戶需要通過命令來初始化,回到項目根目錄,執(zhí)行?python manage.py createsuperuser
,然后根據(jù)命令提示完成初始化,操作結(jié)果如下圖:
初始化
用戶名密碼初始化完成,我們就可以在登陸頁面輸入,然后就能登陸到管理工具頁面,如下圖:
主頁
管理應(yīng)用
在上面登陸成功后,我們在管理頁只看到用戶和組相關(guān)的管理內(nèi)容,這是管理工具自帶的應(yīng)用,并沒有看到之前我們創(chuàng)建的?polls
?應(yīng)用,接下來我們來介紹下用 Django admin 管理工具如何管理我們的應(yīng)用模型。首先修改?polls
?應(yīng)用下的?admin.py
?文件,增加如下代碼:???????
# polls/admin.py
from django.contrib import admin
# 引入 polls 應(yīng)用下的 models
from polls.models import Question,Choice
# 注冊兩個模型
admin.site.register(Question)
admin.site.register(Choice)
保存后退出,然后刷新主頁面,就能看到我們的?polls
?應(yīng)用的模型管理界面了,如下圖所示:
然后我們就可以對?polls
?應(yīng)用數(shù)據(jù)進(jìn)行操作了,點擊?Questions
?模型對應(yīng)的增加按鈕,跳轉(zhuǎn)到數(shù)據(jù)新增頁面,并填寫一個問題描述以及設(shè)置發(fā)布日期,如下圖:
單擊保存后退出到列表頁面,并提示操作成功,然后我們用以前我們配置過的查詢投票問題的URL?http://127.0.0.1:8080/polls/query
?進(jìn)行查詢,就會查到新增加的這條投票問題,查詢結(jié)果如下圖所示:
是不是很快捷方便?當(dāng)然除了新增,還可以對數(shù)據(jù)進(jìn)行修改和刪除操作,你可以在列表中點擊要操作的模型名下對應(yīng)的記錄,然后就跳轉(zhuǎn)到修改和刪除頁面,如下圖所示:
這些操作都比較簡單,這里就不再詳細(xì)介紹,不過需要注意的是:
-
這個表單是從問題?
Question
?模型中自動生成的 -
不同的字段類型(日期時間字段?
DateTimeField
?、字符字段?CharField
)會生成對應(yīng)的?HTML
?輸入控件。每個類型的字段都知道它們該如何在管理頁面里顯示自己。 -
每個日期時間字段?
DateTimeField
?都有?JavaScript
?寫的快捷按鈕。日期有轉(zhuǎn)到今天的快捷按鈕和一個彈出式日歷界面。時間有設(shè)為現(xiàn)在的快捷按鈕和一個列出常用時間的方便的彈出式列表。
另外頁面的底部提供了幾個選項:
-
保存:保存改變,然后返回對象列表。
-
保存并繼續(xù)編輯:保存改變,然后重新載入當(dāng)前對象的修改界面。
-
保存并新增:保存改變,然后添加一個新的空對象并載入修改界面。
-
刪除:顯示一個確認(rèn)刪除頁面。文章來源:http://www.zghlxwxcb.cn/news/detail-669923.html
總結(jié)
本文為大家介紹了 Django Admin 管理工具,可以通過應(yīng)用的模型簡單配置,生成出對應(yīng)的后臺數(shù)據(jù)管理頁面,通過這個管理頁面,我們可以方便的管理數(shù)據(jù)。當(dāng)然除了簡單模型,它還可以管理復(fù)雜模型,并可以自定義表單以及樣式等,感興趣的朋友可以更深入的研究下。文章來源地址http://www.zghlxwxcb.cn/news/detail-669923.html
到了這里,關(guān)于Web 開發(fā) Django 管理工具的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!