博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django实战1-权限管理功能实现-04:系统入口
阅读量:6670 次
发布时间:2019-06-25

本文共 2249 字,大约阅读时间需要 7 分钟。

1 系统入口

我们在项目中已经创建了system app,本套文档要实现的权限管理功能全部隶属于系统管理。先来实现系统模块的访问入口,效果如下图:

1.1 创建系统管理视图

系统管理视图是整个系统模块入口,除了本次文档中介绍的权限管理隶属于系统管理外,系统配置、登陆日志等这些常用功能都可以纳入系统管理中。

复制sandboxMP/templates/index.html 到 /sandboxMP/templates/system/system_index.html,并修改system_index.html内容:

{% extends "base-left.html" %}{% load staticfiles %}{% block content %}    
系统管理首页:system_index,content是页面定义的主要区域, 头部和底部内容以及导航栏都是通过模板继承的,之后的所有 功能前端页面都是在content内进行编辑。
{% endblock %}{% block javascripts %}{% endblock %}复制代码

在sandboxMP/apps/system/views.py中写入系统管理视图SystemView,内容如下:

from django.shortcuts import renderfrom django.views.generic.base import Viewfrom .mixin import LoginRequiredMixinclass SystemView(LoginRequiredMixin, View):    def get(self, request):        return render(request, 'system/system_index.html')复制代码

1.2 URL配置

新建sandboxMP/apps/system/urls.py,内容如下:

from django.urls import pathfrom .views import SystemViewapp_name = 'system'urlpatterns = [    path('', SystemView.as_view(), name='login'),]复制代码

修改sandboxMP/sandboxMP/urls.py, 新增内容:

from django.urls import includeurlpatterns = [    ...原有内容省略...    path('system/', include('system.urls', namespace='system')),]复制代码

这是就可以访问: (如果未登陆将会重定向到登陆页面,登陆后跳转到/system/)

知识点介绍:

1、include: urlpatterns可以包含其他的URLconf,当我们访问一个URL时,当Django遇到include时,它会去掉URL中匹配的部分,并将剩余的字符串发送给包含的URLconf继续处理,例如我们访问:/system/users/时,匹配并去掉system后,将users/字符串发给system.urls处理。
2、namespace: 在使用include时,可以通过namespace参数指定实例的命名空间,如果未指定,则实例命名空间默认为URLconf的应用名称。namespace可用于URL的反向查询,项目中用到时我们在进一步介绍。

2、扩展知识点:基本视图类

项目开始,我们就一直在使用基本视图类:View(django.views.generic.base.View), 所有的视图类都是继承自View类,它负责将视图连接到URL、HTTP方法调度等功能。 基本视图类还包括RedirectView用于HTTP重定向,TempateView扩展基类来渲染模板。

修改sandboxMP/apps/system/views.py中SystemView继承TempateView类来实现1.1中的功能:

from django.shortcuts import renderfrom django.views.generic.base import TemplateViewfrom .mixin import LoginRequiredMixinclass SystemView(LoginRequiredMixin, TemplateView):        template_name = 'system/system_index.html'复制代码

修改后的SystemView继承了TemplateView,无需再重写get()方法,只需要重新定义template_name属性,就实现了1.1中相同的功能,代码更加简洁,更多关于基本视图类的使用方法,我们会在项目中逐步介绍,你也可以参考官方文档。

最新最全文档发布在知识星球,可以通过微信搜索公众号“知识星球”,直接回复"52824366"获得访问入口

本节文档对应源码版本:

非常欢迎感兴趣的朋友,到我的Github或掘金上做客,闲暇之余给个赞或Star,赠人玫瑰手留余香

文档配套项目地址:
轻量级办公管理系统项目开源地址:

转载地址:http://uplxo.baihongyu.com/

你可能感兴趣的文章
那些年我造的轮子之RPC
查看>>
构建Spring Cloud微服务分布式云架构详细步骤
查看>>
三次握手与四次挥手
查看>>
Spring Task定时任务的配置和使用
查看>>
逆向中使用weak
查看>>
CoordinatorLayout、AppBarLayout实现上滑隐藏图片,下滑显示图片
查看>>
React-Router底层原理分析与实现
查看>>
十五、Android性能优化之提升应用的启动速度和Splash页面的设计
查看>>
09-封装
查看>>
在小程序中使用 React with Hooks
查看>>
Re:从零开始的机器学习 - Titanic: Machine Learning from Disaster
查看>>
Android 面试开源框架篇
查看>>
前端调试:记Iscroll4 疑难杂症之z-index失效
查看>>
【译】Android Architecture - ViewModel 与 View 的通信
查看>>
AFNetWorking—NSURLSession
查看>>
Apache Thrift系列详解(三) - 序列化机制
查看>>
ES6学习笔记之Function
查看>>
第一章 面对对象的概念
查看>>
Masonry动画更新约束
查看>>
iOS11踩坑记录
查看>>