django站點(diǎn)管理詳解
管理界面是基礎(chǔ)設(shè)施中非常重要的一部分。這是以網(wǎng)頁(yè)和有限的可信任管理者為基礎(chǔ)的界面,它可以讓你添加,編輯和刪除網(wǎng)站內(nèi)容。Django有自己的自動(dòng)管理界面。這個(gè)特性是這樣起作用的:它讀取你模式中的元數(shù)據(jù),然后提供給你一個(gè)強(qiáng)大而且可以使用的界面,網(wǎng)站管理者可以用它立即工作。
Django的管理員模塊是Django的標(biāo)準(zhǔn)庫(kù)django.contrib的一部分。這個(gè)包還包括其它一些實(shí)用的模塊:
django.contrib.auth
django.contrib.sessions
django.contrib.comments
我們分幾個(gè)部分講解django的管理界面(admin)的使用。
配置
其實(shí)admin的配置并不需要我們過(guò)多操心,在django創(chuàng)建項(xiàng)目和app的時(shí)候都會(huì)為我們自動(dòng)創(chuàng)建,如果你不需要可以將其注釋掉。如果要使用admin那么你需要檢查以下幾個(gè)點(diǎn):
1.在INSTALLED_APPS設(shè)置文件中有
'django.contrib.admin' 'django.contrib.auth', 'django.contrib.contenttypes' 'django.contrib.sessions'
因?yàn)閍dmin模塊依賴
2.在MIDDLEWARE_CLASSES屬性中有
'django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware' 'django.contrib.auth.middleware.AuthenticationMiddleware'.
也是因?yàn)橐蕾?/p>
3.運(yùn)行pythonmanage.pymakemigrations和pythonmanage.pymigrate,用于創(chuàng)建為admin等模塊創(chuàng)建新的數(shù)據(jù)庫(kù)表。
因?yàn)閍pps中有auth模塊,會(huì)要求你創(chuàng)建一個(gè)超級(jí)用戶。所以在此之前你可以使用pythonmanage.pycreatesuperuser命令創(chuàng)建一個(gè)超級(jí)用戶。這個(gè)非常簡(jiǎn)單,根據(jù)提示輸入就可以。
4.在urls.py中設(shè)置admin映射,這個(gè)一般也是系統(tǒng)為我們自動(dòng)添加的。
from django.contrib import admin admin.autodiscover() urlpatterns = patterns('', #... (r'^admin/', include(admin.site.urls)), #... )
完成以上步驟后,運(yùn)行runserver你就可以通過(guò)/admin/這個(gè)url獲取admin界面了。只不過(guò)這時(shí)候的admin界面除了用戶和用戶組之外沒有其他的內(nèi)容
admin.py文件
在每個(gè)app下系統(tǒng)會(huì)自動(dòng)創(chuàng)建admin.py文件。這個(gè)文件的編寫直接影響到admin界面的顯示內(nèi)容。
1.對(duì)model類進(jìn)行注冊(cè)
2.
from django.contrib import admin from mysite.books.models import Publisher,Author, Book admin.site.register(Publisher) admin.site.register(Author) admin.site.register(Book)
這是最基本的數(shù)據(jù)添加功能。當(dāng)你在project文件夾中添加新的文件時(shí),需要重啟server才能生效。這樣就會(huì)看到admin主界面中有了你定義的數(shù)據(jù)模型。此外如果想要你的admin界面中的添加數(shù)據(jù)功能生效,需要確保MIDDLEWARE_CLASSES中有'django.contrib.messages.middleware.MessageMiddleware'。這樣我們就能夠在admin界面很容易的操作數(shù)據(jù)庫(kù)內(nèi)容了,系統(tǒng)會(huì)自動(dòng)同步到數(shù)據(jù)庫(kù)。
自定義admin模塊的顯示
通過(guò)上面的設(shè)置雖然我們有了一個(gè)可以基本滿足需求的admin界面,但是顯示比較單一。基本顯示內(nèi)容的設(shè)置應(yīng)該在models文件中。例如:
class Author(models.Model): first_name = models.CharField(max_length=30) last_name = models.CharField(max_length=40) email =models.EmailField(blank=True)
只需要在字段聲明中,設(shè)置blank=True,默認(rèn)是False,就可以讓email為空。
屬性Field函數(shù)中的verbose_name可以控制這個(gè)字段在admin中以什么樣的名字顯示
Meta內(nèi)部類中的verbose_name可以給模型起一個(gè)更可讀的名字,ordering可以決定數(shù)據(jù)以什么排列方式顯示。
__unicode__的返回值可以決定表在admin中以什么名字顯示。
權(quán)限管理
因?yàn)槟闶怯贸?jí)用戶登錄的,你可以創(chuàng)建,編輯和刪除任何對(duì)像。然而,不同的環(huán)境要求有不同的權(quán)限,系統(tǒng)不允許所有人都是超級(jí)用戶。管理工具有一個(gè)用戶權(quán)限系統(tǒng),通過(guò)它你可以根據(jù)用戶的需要來(lái)指定他們的權(quán)限,從而達(dá)到部分訪問系統(tǒng)的目的。
用戶帳號(hào)應(yīng)該是通用的、獨(dú)立于管理界面以外仍可以使用。但我們現(xiàn)在把它看作是管理界面的一部分。在第十四章,我們將講述如何把用戶帳號(hào)與你的網(wǎng)站(不僅僅是管理工具)集成在一起。
你通過(guò)管理界面編輯用戶及其許可就像你編輯別的對(duì)象一樣。我們?cè)诒菊碌那懊妫瑸g覽用戶和用戶組區(qū)域的時(shí)候已經(jīng)見過(guò)這些了。如你所想,用戶對(duì)象有標(biāo)準(zhǔn)的用戶名、密碼、郵箱地址和真實(shí)姓名,同時(shí)它還有關(guān)于使用管理界面的權(quán)限定義。首先,這有一組三個(gè)布爾型標(biāo)記:
活動(dòng)標(biāo)志,它用來(lái)控制用戶是否已經(jīng)激活。如果一個(gè)用戶帳號(hào)的這個(gè)標(biāo)記是關(guān)閉狀態(tài),而用戶又嘗試用它登錄時(shí),即使密碼正確,他也無(wú)法登錄系統(tǒng)。
成員標(biāo)志,它用來(lái)控制這個(gè)用戶是否可以登錄管理界面,由于用戶系統(tǒng)可以被用于控制公眾頁(yè)面,這個(gè)標(biāo)志可用來(lái)區(qū)分公眾用戶和管理用戶。
超級(jí)用戶標(biāo)志,它賦予用戶在管理界面中添加、修改和刪除任何項(xiàng)目的權(quán)限。如果一個(gè)用戶帳號(hào)有這個(gè)標(biāo)志,那么所有權(quán)限設(shè)置(即使沒有)都會(huì)被忽略。
普通的活躍,非超級(jí)用戶的管理用戶可以根據(jù)一套設(shè)定好的許可進(jìn)入。管理界面中每種可編輯的對(duì)象(如:books、authors、publishers)都有三種權(quán)限:創(chuàng)建許可,編輯許可和刪除許可。給一個(gè)用戶授權(quán)許可也就表明該用戶可以進(jìn)行許可描述的操作。
當(dāng)你創(chuàng)建一個(gè)用戶時(shí),它沒有任何權(quán)限,該有什么權(quán)限是由你決定的。例如,你可以給一個(gè)用戶添加和修改publishers的權(quán)限,而不給他刪除的權(quán)限。請(qǐng)注意,這些權(quán)限是定義在模塊級(jí)別上,而不是對(duì)象級(jí)別上的。據(jù)個(gè)例子,你可以讓小強(qiáng)修改任何圖書,但是不能讓他僅修改由機(jī)械工業(yè)出版社出版的圖書。
權(quán)限管理系統(tǒng)也控制編輯用戶和權(quán)限。如果你給某人編輯用戶的權(quán)限,他可以編輯自己的權(quán)限,這種能力可能不是你希望的。賦予一個(gè)用戶修改用戶的權(quán)限,本質(zhì)上說(shuō)就是把他變成一個(gè)超級(jí)用戶。
你也可以給組中分配用戶。一個(gè)組簡(jiǎn)化了給組中所有成員應(yīng)用一套許可的動(dòng)作。組在給大量用戶特定權(quán)限的時(shí)候很有用。
總結(jié)
以上就是本文關(guān)于django站點(diǎn)管理詳解的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!
相關(guān)文章
python使用Pycharm創(chuàng)建一個(gè)Django項(xiàng)目
這篇文章主要介紹了python使用Pycharm創(chuàng)建一個(gè)Django項(xiàng)目,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-03-03python time.sleep()是睡眠線程還是進(jìn)程
這篇文章主要介紹了python time.sleep()是睡眠線程還是進(jìn)程,通過(guò)實(shí)例代碼給大家介紹了Python Sleep休眠函數(shù) ,需要的朋友可以參考下2019-07-07Python標(biāo)準(zhǔn)庫(kù)sys庫(kù)常用功能詳解
這篇文章主要介紹了Python標(biāo)準(zhǔn)庫(kù)sys庫(kù)常用功能詳解,sys是Python提供的程序與解釋器交互的標(biāo)準(zhǔn)庫(kù),文章圍繞主題展開相關(guān)介紹,需要的朋友可以參考一下2022-07-07Python實(shí)現(xiàn)讀取txt文件并轉(zhuǎn)換為excel的方法示例
這篇文章主要介紹了Python實(shí)現(xiàn)讀取txt文件并轉(zhuǎn)換為excel的方法,涉及Python針對(duì)txt文件的讀取及Excel格式文件生成相關(guān)操作技巧,需要的朋友可以參考下2018-05-05python實(shí)現(xiàn)人民幣大寫轉(zhuǎn)換
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)人民幣大寫轉(zhuǎn)換的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06