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中将阿拉伯数字转换成中文的实现代码
May 19 Python
Django自定义分页与bootstrap分页结合
Feb 22 Python
利用Python操作消息队列RabbitMQ的方法教程
Jul 19 Python
Python基于回溯法子集树模板实现图的遍历功能示例
Sep 05 Python
分分钟入门python语言
Mar 20 Python
Win下PyInstaller 安装和使用教程
Dec 25 Python
pycharm 实现本地写代码,服务器运行的操作
Jun 08 Python
django Model层常用验证器及自定义验证器详解
Jul 15 Python
scrapy利用selenium爬取豆瓣阅读的全步骤
Sep 20 Python
Python 3.9的到来到底是意味着什么
Oct 14 Python
pytorch查看网络参数显存占用量等操作
May 12 Python
Python first-order-model实现让照片动起来
Jun 25 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
简单的php缓存类分享     php缓存机制
2014/01/22 PHP
php使用parse_url和parse_str解析URL
2015/02/22 PHP
weiphp微信公众平台授权设置
2016/01/04 PHP
thinkPHP使用pclzip打包备份mysql数据库的方法
2016/04/30 PHP
Zend Framework路由器用法实例详解
2016/12/11 PHP
php获取数据库中数据的实现方法
2017/06/01 PHP
Laravel如何友好的修改.env配置文件详解
2017/06/07 PHP
解决laravel-admin 自己新建页面里 js 需要刷新一次的问题
2019/10/03 PHP
js 实现图片预加载(js操作 Image对象属性complete ,事件onload 异步加载图片)
2011/03/25 Javascript
js用Date对象处理时间实现思路及代码
2013/01/31 Javascript
JS判断、校验MAC地址的2个实例
2014/05/05 Javascript
jQuery实现行文字链接提示效果的方法
2015/03/10 Javascript
javascript创建对象、对象继承的实用方式详解
2016/03/08 Javascript
JS针对Array的各种操作汇总
2016/11/29 Javascript
javascript中json基础知识详解
2017/01/19 Javascript
JS解决position:sticky的兼容性问题的方法
2017/10/17 Javascript
基于Bootstrap实现城市三级联动
2017/11/23 Javascript
js实现移动端轮播图
2020/12/21 Javascript
VsCode与Node.js知识点详解
2019/09/05 Javascript
vue cli3.0打包上线静态资源找不到路径的解决操作
2020/08/03 Javascript
[03:40]DOTA2抗疫特别篇《英雄年代》
2020/02/28 DOTA
python标准算法实现数组全排列的方法
2015/03/17 Python
python中xrange用法分析
2015/04/15 Python
基于Python的Post请求数据爬取的方法详解
2019/06/14 Python
python多线程并发及测试框架案例
2019/10/15 Python
python三引号如何输入
2020/07/06 Python
英国领先的男士服装和时尚零售商:Burton
2017/01/09 全球购物
2015年幼儿园毕业感言
2014/02/12 职场文书
文化产业实施方案
2014/06/07 职场文书
2014年林业工作总结
2014/12/05 职场文书
先进事迹材料范文
2014/12/29 职场文书
社会主义核心价值观主题教育活动总结
2015/05/07 职场文书
史上最牛辞职信
2015/05/13 职场文书
保护环境建议书作文400字
2015/09/14 职场文书
vue3中的组件间通信
2021/03/31 Vue.js
pandas求平均数和中位数的方法实例
2021/08/04 Python