1. 程式人生 > 程式設計 >django美化後臺django-suit的安裝配置操作

django美化後臺django-suit的安裝配置操作

環境:python2.7+django1.9

1、先下載django-suti

pip install django-suit

2、配置專案

開啟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',]

修改語言、地區、時間格式:

LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/Shanghai'
DATETIME_FORMAT = 'Y-m-d H:i:s' 
DATE_FORMAT = 'Y-m-d'

補充知識:利用django-suit模板在管理後臺新增自定義的選單和自定義的頁面、設定訪問許可權

1、先在settings.py裡面的SUIT_CONFIG中新增配置,我們平時新增的配置都是app型別的,我們需要自定義頁面的話,就不能用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是預設原先的app和models
  # 'sites','-',{'app': 'auth','label': u'許可權管理','icon': 'icon-lock'},{'app': 'duser','label': u'平臺使用者','icon': 'icon-user'},{'app': 'dtheme','label': u'主題管理','icon': 'icon-tags'},{'app': 'dpost','label': u'文章管理','icon': 'icon-edit'},# 如果使用http這種絕對路徑的話,選單不會展開,且不會標記為active狀態
  {'url': '/admin/theme/mysql','label': u'第三資料',{'label': u'統計資料','icon': 'icon-tags','models': (
   {'url': '/admin/theme/data','label': u'第一資料'},{'url': '/admin/theme/show','label': u'第二資料'}
  )}
 )
}

2、然後就是在urls.py裡面新增路由,這個路由一定要新增在admin.site.urls的前面,因為不然的話,它會先去admin.site.urls裡面去匹配,造成混亂或報錯。

from dtheme import views

urlpatterns = [
 # 第一個就是我們自己新增的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、請注意,之所以我們上面可以直接用data.html,是因為我們在dtheme模組下面建立了一個templates資料夾,然後把data.html放在裡面了,它會掃描這個資料夾找模板。那麼這個模板寫成什麼樣呢?我們就隨意寫了一個東西。這裡面需要注意的是,我們需要繼承base_site.html,不然那些header和footer,還有左邊的選單什麼的都沒有了,相當於誰也不繼承。內容就寫在content裡面即可。

{% extends "admin/base_site.html" %}

{% block content %}
hello,new page.
{% endblock %}

5、OVER。

6、回來,還沒完。這個時候如果我們從後臺登出,然後直接在瀏覽器中輸入http://127.0.0.1:8000/admin/theme/data的話,發現還是可以直接訪問到這個頁面,輸入管理後臺的其他頁面它就會要求你驗證。所以說我們自定義的這個頁面還是十分危險的,其他人知道網址後就可以直接訪問它了,我們的想法其實也很簡單啊,我們也不想搞特殊,在安全這方面,只要求和其他後臺的頁面一樣就行了:即使用者在訪問這些後臺頁面的時候要做一個使用者驗證,如果使用者已經登入了,就可以訪問,沒登入沒通過驗證的話,就不能訪問,直接跳轉到登入頁面。這個需要我們再view裡面做設定。

from django.contrib.admin.views.decorators import staff_member_required

def data(request):
 return render(request,"data.html")

data = staff_member_required(data)

看到上面的變化了沒有?就是我們引入了一個staff_member_required模組,這個模組就是用來驗證是否是內部人員(也就是是否登入)用的。當然我們要把我們的view函式放在它裡面。這樣就OK了。

7、這裡面還有一個如何把自定義頁面加入到auth裡面的坑,待研究完再回來補充。

以上這篇django美化後臺django-suit的安裝配置操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。