当 DEBUG=True 时,django 内部的404报错信息,

自带的报错信息,

要自定义404信息,要先把 DEBUG=False ,

之后要自定义4040页面,有两种方法,

  方法1,在创建404页面

这样就配置完成,当访问不存在的页面时,跳转到自定义的404页面中,

方法2,创建404.html文件后,写个视图函数渲染,传入 status=404 状态码,(可自定义403,500)

之后在主 urls 文件中给这些配置路由,要在主 urls 文件中导入该 APP 的视图

在该项目中的数据库中存放着 auth 的关系表,

用户基本信息表:

在 auth_user 表中可以查看到昨天创建 的 admin 用户

其中,user 表,group 表,permlssion 表,是多对多的表关系,

注册视图函数的写法:

要在视图函数中导入 auth 模型,

登录视图函数的写法:

在 home 视图函数:

在页岩显示用户名时,在 html 文件中直接接收 request.user

退出登录视图函数:

from django.shortcuts import render,redirect,reverse
from django.http import HttpResponse
from .forms import * # 导入 form 文件 # 导入 auth 系统的模型,表 用户, 组, 权限
from django.contrib.auth.models import User,Group,Permission # 导入 auth 系统的模型,表 登录, 保持登录, 退出
from django.contrib.auth import authenticate, login, logout # Create your views here. def home(request):
return render(request,'form_test/home.html' ) def login_test(request):
# 登录
if request.method =='POST':
form = LoginForm(request.POST) # 拿到用户输入信息
if form.is_valid(): # 判断合法性
username = form.cleaned_data.get('username')
password = form.cleaned_data.get('password')
# auth 验证用户登录
user = authenticate(username=username,password=password) if user: # 登录成功
login(request,user) # 保持登录
return redirect(reverse('home'))
else:
form = RegisterFrom()
return render(request,'form_test/register.html',{'form':form})
else:
form = LoginForm() # 实例化 form 表单
return render(request,'form_test/login.html',{'form':form}) def register(request):
# 注册信息
if request.method =='POST':
form = RegisterFrom(request.POST) # 从 form 表单中拿数据
if form.is_valid(): # 判断数据合不合法
username = form.cleaned_data.get('username')
password = form.cleaned_data.get('password')
password_repeat = form.cleaned_data.get('password_repeat')
email = form.cleaned_data.get('emil')
if password == password_repeat: # 如果两位再次输入的密码相同,
# 存入 auth 模型的表中
User.objects.create_user(username=username,
password=password,
email=email)
return redirect(reverse('login_test')) # 注册成功 后跳转 else:return redirect(reverse('register')) # 失败,重新注册
else:return redirect(reverse('register')) # 如果不合法,重新注册
else:
form = RegisterFrom()
return render(request,'form_test/register.html',{'form':form}) def logout_test(request):
logout(request)
return redirect(reverse('home'))

  

权限管理:

实例的实现:只有在登录后才能进入博客主页,

1, 在主目录的配置文件中添加一路径,如果没有登录,就跳转到这个指定目录下,

2, 给博客主页 的视图函数添加权限,装饰器,

在地址栏中可以看到 next 的值,就是博客主页的 url,

在登录视图函数中打印出 next 的值,:

用户对数据的增,删,改,查,的管理权限:

查看数据库中的每一张表都有这四个功能,

在视图中的增删改查添加  permission_required  权限管理 装饰器,

视图哈数:

添加权限后的视图,没有登录,级普通用户,是不能访问的,

这里可以对相关表的修改,进行用户权限的管理,

如: 在某个视图中导入 auth 的相关表,对一个用户做修改密码的操作

写个视图函数: 这里对 gdwz922922 用户进行修改密码的操作,

配置下路由:

访问该视图后就可以成功修改密码,

同样方法可以对这个用户进行用户权限的修改,(多对多关系表)

用户组,给一个组开通相关权限,把需要该权限的用户统一放到这个组里,实现批量修改用户权限的功能,

1,写个创建组的视图函数:

2,地址样中访问这个视图

3,给这个组添加权限,

4,地址样中访问这个视图

5,往组里加人

这样就完成了从创建组到用户分组的过程

最新文章

  1. 使用Mulesoft建立webservice, simple方式,POJO
  2. CIO:让IT成为企业的一种竞争优势
  3. (学习笔记)PHP的输出echo和print
  4. 0422 发现( 数学口袋精灵)bug
  5. git 空提交和重置提交者(转载)
  6. 图解Git命令
  7. 设置两个div是总是不能重合,浏览器user agent stylesheet问题
  8. MySQL升级-5.6升级到5.7版本&切换GTID模式
  9. complex figure
  10. 【原创】大叔问题定位分享(16)spark写数据到hive外部表报错ClassCastException: org.apache.hadoop.hive.hbase.HiveHBaseTableOutputFormat cannot be cast to org.apache.hadoop.hive.ql.io.HiveOutputFormat
  11. java爬取免费HTTP代理 code-for-fun
  12. 更改linux终端中用户名颜色
  13. JavaScript 简单的实现 sleep功能 .
  14. js 点击下载文件
  15. 关于web开发中,图片加载失败替换为默认图片
  16. Inside NGINX: How We Designed for Performance & Scale
  17. 【转】DSL
  18. 数据仓库基础(三)OLAP
  19. 【spring框架】spring获取webapplicationcontext,applicationcontext几种方法详解--(转)
  20. 【LeetCode算法题库】Day3:Reverse Integer & String to Integer (atoi) & Palindrome Number

热门文章

  1. Python安装、卸载第三方模块
  2. C++ Primer 笔记——关联容器
  3. 饮冰三年-人工智能-linux-08 软件包管理(Python的安装)
  4. GoogleTest入门
  5. 升级到 Android Studio 3.0 + Gradle 4.1 遇到的一些坑及解决方案
  6. TypeScipt学习
  7. ASP.NET Core Http请求的处理流程
  8. [转] React Hot Loader 3 beta 升级指南
  9. jloi2015
  10. 3998: [TJOI2015]弦论