django美化后臺(tái)django-suit的安裝配置操作
環(huán)境:python2.7+django1.9
1、先下載django-suti
pip install django-suit
2、配置項(xiàng)目
打開(kāi)setting.py,然后找到------------------------INSTALLED_APPS
在'django.contrib.admin',前面寫入 'suit',
INSTALLED_APPS = [ 'suit', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', ]
修改語(yǔ)言、地區(qū)、時(shí)間格式:
LANGUAGE_CODE = 'zh-Hans' TIME_ZONE = 'Asia/Shanghai' DATETIME_FORMAT = 'Y-m-d H:i:s' DATE_FORMAT = 'Y-m-d'
補(bǔ)充知識(shí):利用django-suit模板在管理后臺(tái)添加自定義的菜單和自定義的頁(yè)面、設(shè)置訪問(wèn)權(quán)限
1、先在settings.py里面的SUIT_CONFIG中添加配置,我們平時(shí)添加的配置都是app類型的,我們需要自定義頁(yè)面的話,就不能用app了,需要用url,這里面我們使用如下:
# django-suit config SUIT_CONFIG = { 'ADMIN_NAME': 'X·X', 'HEADER_DATE_FORMAT': '', 'HEADER_TIME_FORMAT': 'H:i', 'SHOW_REQUIRED_ASTERISK': True, 'CONFIRM_UNSAVED_CHANGES': True, 'LIST_PER_PAGE': 20, 'MENU_OPEN_FIRST_CHILD': True, 'MENU': ( # sites是默認(rèn)原先的app和models # 'sites', '-', {'app': 'auth', 'label': u'權(quán)限管理', 'icon': 'icon-lock'}, '-', {'app': 'duser', 'label': u'平臺(tái)用戶', 'icon': 'icon-user'}, '-', {'app': 'dtheme', 'label': u'主題管理', 'icon': 'icon-tags'}, '-', {'app': 'dpost', 'label': u'文章管理', 'icon': 'icon-edit'}, '-', # 如果使用http這種絕對(duì)路徑的話,菜單不會(huì)展開(kāi),且不會(huì)標(biāo)記為active狀態(tài) {'url': '/admin/theme/mysql', 'label': u'第三數(shù)據(jù)', 'icon': 'icon-lock'}, '-', {'label': u'統(tǒng)計(jì)數(shù)據(jù)', 'icon': 'icon-tags', 'models': ( {'url': '/admin/theme/data', 'label': u'第一數(shù)據(jù)'}, {'url': '/admin/theme/show', 'label': u'第二數(shù)據(jù)'} )} ) }
2、然后就是在urls.py里面添加路由,這個(gè)路由一定要添加在admin.site.urls的前面,因?yàn)椴蝗坏脑?,它?huì)先去admin.site.urls里面去匹配,造成混亂或報(bào)錯(cuò)。
from dtheme import views urlpatterns = [ # 第一個(gè)就是我們自己新增的url路徑 url(r'^admin/theme/data', views.data), url(r'^admin/', admin.site.urls), url(r'^api/user/', include('duser.urls')), url(r'^api/post/', include('dpost.urls')), url(r'^api/theme/', include('dtheme.urls')), ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
3、然后,就是寫views了,我們假如dtheme模塊的views里面寫:
def data(request):
return render(request, "data.html")
4、請(qǐng)注意,之所以我們上面可以直接用data.html,是因?yàn)槲覀冊(cè)赿theme模塊下面創(chuàng)建了一個(gè)templates文件夾,然后把data.html放在里面了,它會(huì)掃描這個(gè)文件夾找模板。那么這個(gè)模板寫成什么樣呢?我們就隨意寫了一個(gè)東西。這里面需要注意的是,我們需要繼承base_site.html,不然那些header和footer,還有左邊的菜單什么的都沒(méi)有了,相當(dāng)于誰(shuí)也不繼承。內(nèi)容就寫在content里面即可。
{% extends "admin/base_site.html" %} {% block content %} hello, new page. {% endblock %}
5、OVER。
6、回來(lái),還沒(méi)完。這個(gè)時(shí)候如果我們從后臺(tái)注銷,然后直接在瀏覽器中輸入http://127.0.0.1:8000/admin/theme/data的話,發(fā)現(xiàn)還是可以直接訪問(wèn)到這個(gè)頁(yè)面,輸入管理后臺(tái)的其他頁(yè)面它就會(huì)要求你驗(yàn)證。所以說(shuō)我們自定義的這個(gè)頁(yè)面還是十分危險(xiǎn)的,其他人知道網(wǎng)址后就可以直接訪問(wèn)它了,我們的想法其實(shí)也很簡(jiǎn)單啊,我們也不想搞特殊,在安全這方面,只要求和其他后臺(tái)的頁(yè)面一樣就行了:即用戶在訪問(wèn)這些后臺(tái)頁(yè)面的時(shí)候要做一個(gè)用戶驗(yàn)證,如果用戶已經(jīng)登錄了,就可以訪問(wèn),沒(méi)登錄沒(méi)通過(guò)驗(yàn)證的話,就不能訪問(wèn),直接跳轉(zhuǎn)到登錄頁(yè)面。這個(gè)需要我們?cè)賤iew里面做設(shè)置。
from django.contrib.admin.views.decorators import staff_member_required def data(request): return render(request, "data.html") data = staff_member_required(data)
看到上面的變化了沒(méi)有?就是我們引入了一個(gè)staff_member_required模塊,這個(gè)模塊就是用來(lái)驗(yàn)證是否是內(nèi)部人員(也就是是否登錄)用的。當(dāng)然我們要把我們的view函數(shù)放在它里面。這樣就OK了。
7、這里面還有一個(gè)如何把自定義頁(yè)面加入到auth里面的坑,待研究完再回來(lái)補(bǔ)充。
以上這篇django美化后臺(tái)django-suit的安裝配置操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python基礎(chǔ)教程之python消息摘要算法使用示例
這篇文章主要介紹了python中的消息摘要算法使用示例,需要的朋友可以參考下2014-02-02賺瘋了!轉(zhuǎn)手立賺800+?大佬的python「搶茅臺(tái)腳本」使用教程
這篇文章主要介紹了如果利用python搶購(gòu)京東茅臺(tái),幫助大家更好的理解和使用python,感興趣的朋友可以了解下2021-01-01Python解析JSON數(shù)據(jù)的方法簡(jiǎn)單例子
這篇文章主要給大家介紹了關(guān)于Python解析JSON數(shù)據(jù)的方法,解析JSON文件是Python中非常常見(jiàn)的操作,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-09-09Python如何通過(guò)Flask-Mail發(fā)送電子郵件
這篇文章主要介紹了Python如何通過(guò)Flask-Mail發(fā)送電子郵件,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01python網(wǎng)絡(luò)爬蟲基本語(yǔ)法詳解
掌握Python網(wǎng)絡(luò)爬蟲基本語(yǔ)法,就是打開(kāi)數(shù)據(jù)世界的鑰匙,在這份指南中,我們將帶你深入淺出,從零開(kāi)始一步步變成抓取信息的高手,準(zhǔn)備好探索無(wú)限可能的網(wǎng)絡(luò)數(shù)據(jù)世界了嗎?讓我們一起開(kāi)啟這段精彩旅程吧!2024-03-03Python?作為小程序后端的三種實(shí)現(xiàn)方法(推薦)
這篇文章主要介紹了Python?作為小程序后端的三種方法,在這比較推薦前兩種方法,本文通過(guò)實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05Python進(jìn)階之如何快速將變量插入有序數(shù)組
在我們學(xué)習(xí)python的過(guò)程中,學(xué)習(xí)序列是一門必修課。本文我們就來(lái)一起看一看Python是如何快速將變量插入有序數(shù)組的,感興趣的可以了解一下2023-04-04pandas如何優(yōu)雅的列轉(zhuǎn)行及行轉(zhuǎn)列詳解
我們?cè)谧鰯?shù)據(jù)處理的時(shí)候遇到pandas列轉(zhuǎn)行的問(wèn)題,這篇文章主要給大家介紹了關(guān)于pandas如何優(yōu)雅的列轉(zhuǎn)行及行轉(zhuǎn)列的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2021-12-12