Admin站點(diǎn)

假設(shè)我們要設(shè)計(jì)一個(gè)新聞網(wǎng)站,我們需要編寫展示給用戶的頁面,網(wǎng)頁上展示的新聞信息是從哪里來的呢?是從數(shù)據(jù)庫中查找到新聞的信息,然后把它展示在頁面上。但是我們的網(wǎng)站上的新聞每天都要更新,這就意味著對(duì)數(shù)據(jù)庫的增、刪、改、查操作,那么我們需要每天寫sql語句操作數(shù)據(jù)庫嗎? 如果這樣的話,是不是非常繁瑣,所以我們可以設(shè)計(jì)一個(gè)頁面,通過對(duì)這個(gè)頁面的操作來實(shí)現(xiàn)對(duì)新聞數(shù)據(jù)庫的增刪改查操作。那么問題來了,老板說我們需要在建立一個(gè)新網(wǎng)站,是不是還要設(shè)計(jì)一個(gè)頁面來實(shí)現(xiàn)對(duì)新網(wǎng)站數(shù)據(jù)庫的增刪改查操作,但是這樣的頁面具有一個(gè)很大的重復(fù)性,那有沒有一種方法能夠讓我們很快的生成管理數(shù)據(jù)庫表的頁面呢?有,那就是我們接下來要給大家講的Django的后臺(tái)管理。Django能夠根據(jù)定義的模型類自動(dòng)地生成管理頁面。

使用Django的管理模塊,需要按照如下步驟操作:

管理界面本地化

創(chuàng)建管理員

注冊(cè)模型類

自定義管理頁面

1 管理界面本地化

在settings.py中設(shè)置語言和時(shí)區(qū)

LANGUAGE_CODE ='zh-hans'# 使用中國語言TIME_ZONE ='Asia/Shanghai'# 使用中國上海時(shí)間

2 創(chuàng)建超級(jí)管理員

創(chuàng)建管理員的命令如下,按提示輸入用戶名、郵箱、密碼。

python manage.py createsuperuser


打開瀏覽器,在地址欄中輸入如下地址后回車。

http://127.0.0.1:8000/admin/

輸入前面創(chuàng)建的用戶名、密碼完成登錄。

登錄成功后界面如下,但是并沒有我們自己應(yīng)用模型的入口,接下來進(jìn)行第三步操作。

如果想要修改密碼可以執(zhí)行

python manage.py changepassword 用戶名

3 App應(yīng)用配置

在每個(gè)應(yīng)用目錄中都包含了apps.py文件,用于保存該應(yīng)用的相關(guān)信息。

在創(chuàng)建應(yīng)用時(shí),Django會(huì)向apps.py文件中寫入一個(gè)該應(yīng)用的配置類,如

fromdjango.appsimportAppConfigclassBooktestConfig(AppConfig):name ='booktest'

我們將此類添加到工程settings.py中的INSTALLED_APPS列表中,表明注冊(cè)安裝具備此配置屬性的應(yīng)用。

AppConfig.name?屬性表示這個(gè)配置類是加載到哪個(gè)應(yīng)用的,每個(gè)配置類必須包含此屬性,默認(rèn)自動(dòng)生成。

AppConfig.verbose_name?屬性用于設(shè)置該應(yīng)用的直觀可讀的名字,此名字在Django提供的Admin管理站點(diǎn)中會(huì)顯示,如

fromdjango.appsimportAppConfigclassBooktestConfig(AppConfig):name ='booktest'verbose_name ='圖書管理'

4 注冊(cè)模型類

登錄后臺(tái)管理后,默認(rèn)沒有我們創(chuàng)建的應(yīng)用中定義的模型類,需要在自己應(yīng)用中的admin.py文件中注冊(cè),才可以在后臺(tái)管理中看到,并進(jìn)行增刪改查操作。

打開booktest/admin.py文件,編寫如下代碼:

fromdjango.contribimportadminfrombooktest.modelsimportBookInfo,HeroInfoadmin.site.register(BookInfo)admin.site.register(HeroInfo)


到瀏覽器中刷新頁面,可以看到模型類BookInfo和HeroInfo的管理了。


點(diǎn)擊類名稱"BookInfo"(圖書)可以進(jìn)入列表頁,默認(rèn)只有一列。

在列表頁中點(diǎn)擊"增加"可以進(jìn)入增加頁,Django會(huì)根據(jù)模型類的不同,生成不同的表單控件,按提示填寫表單內(nèi)容后點(diǎn)擊"保存",完成數(shù)據(jù)創(chuàng)建,創(chuàng)建成功后返回列表頁。


在列表頁中點(diǎn)擊某行的第一列可以進(jìn)入修改頁。

按照提示進(jìn)行內(nèi)容的修改,修改成功后進(jìn)入列表頁。在修改頁點(diǎn)擊“刪除”可以刪除一項(xiàng)。

刪除:在列表頁勾選想要?jiǎng)h除的復(fù)選框,可以刪除多項(xiàng)。


點(diǎn)擊執(zhí)行后進(jìn)入確認(rèn)頁面,刪除后回來列表頁面。

5 定義與使用Admin管理類

Django提供的Admin站點(diǎn)的展示效果可以通過自定義ModelAdmin類來進(jìn)行控制。

定義管理類需要繼承自admin.ModelAdmin類,如下

fromdjango.contribimportadminclassBookInfoAdmin(admin.ModelAdmin):pass

使用管理類有兩種方式:

注冊(cè)參數(shù)

admin.site.register(BookInfo,BookInfoAdmin)

裝飾器

@admin.register(BookInfo)classBookInfoAdmin(admin.ModelAdmin):pass

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 數(shù)據(jù)庫設(shè)置 1. Django默認(rèn)是使用sqlite,如果您希望使用另一個(gè)數(shù)據(jù)庫,安裝適當(dāng)?shù)臄?shù)據(jù)庫綁定,并在數(shù)據(jù)庫...
    Mlotjve閱讀 472評(píng)論 0 0
  • 內(nèi)容發(fā)布的部分由網(wǎng)站的管理員負(fù)責(zé)查看、添加、修改、刪除數(shù)據(jù),開發(fā)這些重復(fù)的功能是一件單調(diào)乏味、缺乏創(chuàng)造力的工作,為...
    錦魚閱讀 731評(píng)論 0 0
  • 我們將繼續(xù)使用web-poll 應(yīng)用程序,并將專注于自定義Django的自動(dòng)生成的管理站點(diǎn), 自定義管理表單 通過...
    Mlotjve閱讀 773評(píng)論 0 2
  • admin 內(nèi)容發(fā)布的部分由網(wǎng)站的管理員負(fù)責(zé)查看、添加、修改、刪除數(shù)據(jù),開發(fā)這些重復(fù)的功能是一件單調(diào)乏味、缺乏創(chuàng)造...
    現(xiàn)實(shí)里的童話xklss閱讀 1,353評(píng)論 0 0
  • Admin 站點(diǎn)管理 用處 :提供數(shù)據(jù)庫管理功能:基于admin模塊,可以實(shí)現(xiàn)類似數(shù)據(jù)庫客戶端的功能,對(duì)數(shù)據(jù)進(jìn)行增...
    daley_磊閱讀 333評(píng)論 0 1

友情鏈接更多精彩內(nèi)容