django美化后台django-suit的安装配置操作


Posted in Python onJuly 12, 2020

环境: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'第三数据', 'icon': 'icon-lock'},
  '-',
  {'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的安装配置操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中精确输出JSON浮点数的方法
Apr 18 Python
Python使用BeautifulSoup库解析HTML基本使用教程
Mar 31 Python
详解 Python 与文件对象共事的实例
Sep 11 Python
python中通过预先编译正则表达式提高效率
Sep 25 Python
Python如何抓取天猫商品详细信息及交易记录
Feb 23 Python
Python操作MySQL模拟银行转账
Mar 12 Python
Python中的groupby分组功能的实例代码
Jul 11 Python
利用selenium爬虫抓取数据的基础教程
Jun 10 Python
python使用tkinter库实现五子棋游戏
Jun 18 Python
python正则爬取某段子网站前20页段子(request库)过程解析
Aug 10 Python
django 框架实现的用户注册、登录、退出功能示例
Nov 28 Python
python实现黄金分割法的示例代码
Apr 28 Python
浅谈matplotlib 绘制梯度下降求解过程
Jul 12 #Python
使用matplotlib的pyplot模块绘图的实现示例
Jul 12 #Python
django template实现定义临时变量,自定义赋值、自增实例
Jul 12 #Python
Django后端分离 使用element-ui文件上传方式
Jul 12 #Python
PyQt5-QDateEdit的简单使用操作
Jul 12 #Python
Python logging日志模块 配置文件方式
Jul 12 #Python
django rest framework 过滤时间操作
Jul 12 #Python
You might like
php5编程中的异常处理详细方法介绍
2008/07/29 PHP
php 学习资料零碎东西
2010/12/04 PHP
PHP计算当前坐标3公里内4个角落的最大最小经纬度实例
2016/02/26 PHP
PHP4和PHP5版本下解析XML文档的操作方法实例分析
2017/05/20 PHP
豆瓣网的jquery代码实例
2008/06/15 Javascript
Prototype源码浅析 String部分(一)之有关indexOf优化
2012/01/15 Javascript
深入理解vue.js双向绑定的实现原理
2016/12/05 Javascript
很棒的一组js图片轮播特效
2017/01/12 Javascript
详解angular ui-grid之过滤器设置
2017/06/07 Javascript
说说AngularJS中的$parse和$eval的用法
2017/09/14 Javascript
详解在React里使用"Vuex"
2018/04/02 Javascript
vue-cli3 项目从搭建优化到docker部署的方法
2019/01/28 Javascript
vue+element 模态框表格形式的可编辑表单实现
2019/06/07 Javascript
小程序如何自主实现拦截器的示例代码
2019/11/04 Javascript
微信分享invalid signature签名错误踩过的坑
2020/04/11 Javascript
[04:38]完美世界携手游戏风云打造 卡尔工作室饰品系统篇
2013/04/25 DOTA
使用Python的web.py框架实现类似Django的ORM查询的教程
2015/05/02 Python
Python 制作糗事百科爬虫实例
2016/09/22 Python
python 去除txt文本中的空格、数字、特定字母等方法
2018/07/24 Python
python实现多层感知器MLP(基于双月数据集)
2019/01/18 Python
python django 原生sql 获取数据的例子
2019/08/14 Python
使用apiDoc实现python接口文档编写
2019/11/19 Python
使用python的turtle函数绘制一个滑稽表情
2020/02/28 Python
斐乐美国官方网站:FILA美国
2019/03/01 全球购物
Currentbody德国站:健康与美容技术专家
2020/04/05 全球购物
信息技术专业个人自我评价
2013/12/11 职场文书
股权转让意向书
2014/04/01 职场文书
政协调研汇报材料
2014/08/15 职场文书
乡镇八一建军节活动方案
2014/08/24 职场文书
群众路线教育查摆剖析材料
2014/10/10 职场文书
2015年精神文明建设工作总结
2015/04/21 职场文书
课程设计感想范文
2015/08/11 职场文书
JS如何使用剪贴板操作Clipboard API
2021/05/17 Javascript
Go语言实现Base64、Base58编码与解码
2021/07/26 Golang
Vue的列表之渲染,排序,过滤详解
2022/02/24 Vue.js
vue配置型表格基于el-table拓展之table-plus组件
2022/04/12 Vue.js