Django教程-admin模塊

Django教程-admin模塊

有個網(wǎng)站開發(fā)經(jīng)驗的同學(xué)應(yīng)該都知道,網(wǎng)站都會有個后臺管理界面,這個界面是只有管理員權(quán)限的用戶才能進入管理網(wǎng)站內(nèi)容。比如個人博客,CMS都會有這樣的管理后臺。管理后臺的頁面通常都是簡單重復(fù)的頁面,他們可重用性很高,所以作為一個大而全的框架,django為廣大開發(fā)者提供了這樣一個模塊,讓你無需編寫很多的代碼,就可以寫出實用美觀的后臺管理頁面,大大提高了中小型網(wǎng)站的開發(fā)效率。今天我們就先來了解下如何使用admin模塊。

初識admin

首先我們新建一個site和app。
接下來我們修改settings.py的INSTALLED_APPS如下:

INSTALLED_APPS = (
    'django.contrib.admin',    #加入admin模塊,通常新建工程就有,沒有的話需要自己添加
    'django.contrib.auth',       #權(quán)限驗證,同樣需要
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app',  #your app
)

然后在urls.py文件里添加admin模塊攔截,代碼如下(注意django1.8前后版本區(qū)別,這里是1.8之前版本的寫法)

from django.conf.urls import patterns, include, url
from django.contrib import admin

from app.views import params_test, params_test_reg, params_post, form_view, createstudent

urlpatterns = patterns('',
    # Examples:
    # url(r'^$', 'PostParams.views.home', name='home'),
    # url(r'^blog/', include('blog.urls')),

    url(r'^admin/', include(admin.site.urls)),    #admin模塊url攔截
    url(r'^params_test/$',params_test),
    url(r'^params_test_reg/str(?P<str>\w+)page(?P<page>\d+)/$',params_test_reg),
    url(r'^post/$',params_post),
    url(r'^form/$',form_view),
    url(r'^createstudent/$', createstudent),
)

做完這些操作后,我們需要更新同步數(shù)據(jù)庫信息,將admin模塊的模型導(dǎo)入數(shù)據(jù)庫。(前面已經(jīng)介紹過,本節(jié)不做過多介紹)
既然是admin管理模塊,我們還需要個默認(rèn)管理員賬號,使用以下命令創(chuàng)建
python manage.py createsuperuser
按照提示即可完成操作,管理員賬號創(chuàng)建完成后,我們就可以啟動服務(wù)器
python manage.py runserver
然后我們打開瀏覽器,輸入127.0.0.1:8000/admin就可以看見后臺登陸頁面

image.png

輸入用戶名密碼登陸后就可以看到如下界面
只有

可以看到這時候管理后臺只有默認(rèn)的groups和users選項,沒有我們自己的student和course管理,不要著急,接下來就介紹如何在admin模塊添加模型管理。

admin

我們在app里面新增兩個model,代碼如下

from django.db import models

# Create your models here.
class Label(models.Model):
    title=models.CharField(max_length=20,verbose_name='label name')
class Article(models.Model):
    title=models.CharField(max_length=20,verbose_name='title')
    content=models.CharField(max_length=10,verbose_name='content')
    labels=models.ManyToManyField(Label,verbose_name='labels',blank=True,null=True)

然后同步數(shù)據(jù)庫,這些前面已經(jīng)介紹過,本節(jié)不做過多介紹。
后臺管理的代碼django建議放在admin.py(放在其他位置也可以),對于admin模塊的代碼與其說是開發(fā),不如說是配置,因為django已經(jīng)為我們封裝好了很多模塊和功能,我們只需要簡單地配置下就能實現(xiàn)很多功能。
話不多說,我們添加上面兩個model的管理界面,代碼如下

from django.contrib import admin

# Register your models here.
from app.models import Article, Label


class ArticleAdmin(admin.ModelAdmin):
    pass
class LabelAdmin(admin.ModelAdmin):
    pass
admin.site.register(Article,ArticleAdmin)
admin.site.register(Label,LabelAdmin)

代碼非常簡單,我們只需要繼承ModelAdmin,然后將model和對應(yīng)的ModelAdmin注冊到admin中就可以。
我們重新啟動服務(wù)器,登入后臺管理界面,就可以看到后臺管理界面已經(jīng)出現(xiàn)我們剛剛新加的兩個model


image.png

我們點擊Labels里面進去看看


image.png

暫時是空的,我們新增一個看看


image.png

保存后返回到列表頁面



就可以看到現(xiàn)在列表中已經(jīng)存在一個我們新增的label,當(dāng)然這時候顯示還是有問題的,但是基本的后臺管理功能已經(jīng)實現(xiàn)了。
可以發(fā)現(xiàn),django后臺模塊功能非常強大,我們甚至沒有編寫任何代碼,就擁有一個可以使用的后臺管理模塊。當(dāng)然現(xiàn)有的后臺管理頁面還是簡陋功能不完善的,接下來的章節(jié)我將會繼續(xù)和大家探討如何個性化后臺管理頁面以及實現(xiàn)更多的功能,從而使其滿足大家的開發(fā)需求。

最近參加支付寶小程序比賽需要訪問量,麻煩各位看官有空復(fù)制下面的話打開支付寶,搜索欄粘貼,在此多謝各位支持了

#JvCmawp74I1#長按復(fù)制此消息,打開支付寶搜索,體驗?zāi)暇┮咔榈貓D小程序
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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