当 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,往组里加人

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

潭州课堂25班:Ph201805201 django框架 第十三课 自定义404页面,auth系统中的User模型,auth系统权限管理 (课堂笔记)的更多相关文章

  1. 潭州课堂25班:Ph201805201 django框架 第五课 自定义简单标签,包含标签,模型类创建,梳理类创建 (课堂笔记)

    自定义标签同自定义过渡器一样,要创建文件,在配置文件中以APP方法注册,对方法进注册,在 html 文件中引入,.. 由模板传参 在 在配置文件中改时区: 由视图函数传参 包含标签: 当有这种重复的代 ...

  2. 潭州课堂25班:Ph201805201 django 项目 第十课 自定义错误码,完成图片验证码,用户是否被注册功能 (课堂笔记)

    把 视图传到前台的  JsonResponse(data=data) 先进行处理,之后再传到前台, 处理:引用自定义错误代码,把错误代码返回给前台,前台根据错误代码中文提示 class Code: O ...

  3. 潭州课堂25班:Ph201805201 django框架 第四课 模板常用标签,模板继承与引用,自定义过渡器 (课堂笔记)

    if 语句 判断传入的 name 值 建好这些文件后,对 url 进行配置 在浏览器中访问 for 循环 页面跳转: 通过  name 跳转时要在 urls 文件中为该 path 设置 name 带参 ...

  4. 潭州课堂25班:Ph201805201 django框架 第十一课 保持登录,注册,登录 (课堂笔记)

    保持登录 在 django 中的内置 sessions 在项目的主目录中的配置文件 在数据库中 在视图函数中写登录 在页面登录后会出现 查看数据库内容 这样就实现保持登录 退出登录 注册: 1,创建模 ...

  5. 潭州课堂25班:Ph201805201 django框架 第七课 常用 字段类型及参数,关系表的实现,表关系对象add,create的方法 (课堂笔记)

    写个类,创建表格 执行命令生成文件 提交,在数据库中创建 进入数据库查看 对数据进行修改操作 只有用到 save() 才能触发 updaer_time 的更改, 下边 update 方法不会修改 up ...

  6. 潭州课堂25班:Ph201805201 django框架 第十课 GET,POST 请求 文件上传,HttpResponse,cookie (课堂笔记)

    在项目中新建个APP, 在主目录中的配置文件中进行 APP 注册 在主目录中的 urls 文件中进行路径分配 新建 urrls 文件 进行分路由配置 创建模板文件 html 文件 写个 form 表单 ...

  7. 潭州课堂25班:Ph201805201 django框架 第八课 表关联对象方法add,create,remove,clear,多表查询 (课堂笔记)

    查表: 数据的插入 新建添加 删除 清空

  8. 潭州课堂25班:Ph201805201 django框架 第六课 模型类增删改查,常用 的查询矣查询条件 (课堂笔记)

    在视图函数中写入增删改查的方法 增: 在 urls 中配置路径 : 查: 1: 在后台打印数据 在模型类中添加格式化输出 : QuerySet,反回的是个对象,可以按索引聚会,用 for 循环,, 找 ...

  9. 潭州课堂25班:Ph201805201 django框架 第三课 模板路径,变量,过滤器,静态文件的引用 (课堂笔记)

    第二种方法 首先   'APP_DIRS': True, 将 app 的名字在 INSTALLED_APPS 进行注册 模板变量 传的各种数据类型,和取值 过渡器: 静态文件: 在项目文件目录 中创建 ...

随机推荐

  1. bat 获取拖放文件路径或名称

    获取路径: @echo offset path=%~dp1echo %path%pause 获取路径及名称: @echo offset path=%~dp1%~nx1echo %path%pause

  2. AI-DRF权限、频率

    权限 权限逻辑 权限逻辑 权限组件可以设置在三个地方:写在每个类下边表示,访问这个类的数据时,没有权限就不能访问:写在全局,表示访问每个字段的数据都需要权限:还有默认已经也写好了. 写在每个类中:写一 ...

  3. 基于nginx的WebSocket反向代理

    系统:windows 版本:nginx 1.4.5 配置内容: location ~ \.do$ {             proxy_pass   http://192.168.20.102:80 ...

  4. 饮冰三年-人工智能-Python-12之利其器pycharm

    1:下载.安装.与激活这里不再介绍了.需要注意的是激活时需要修改C:\Windows\System32\drivers\etc\hosts文件 2:工具使用 2.1 HelloWorld  File& ...

  5. nodejs 环境安装

    参考网站 http://www.runoob.com/nodejs/nodejs-http-server.html https://github.com/nodesource/distribution ...

  6. SQLSERVER 数据量太大,重启服务器后,数据库显示正在恢复

    问题:如题. 解决方法:右键数据库   属性——选项——恢复模式:简单

  7. 435. Non-overlapping Intervals

    Given a collection of intervals, find the minimum number of intervals you need to remove to make the ...

  8. 一脸懵逼学习Hdfs---动态增加节点和副本数量管理(Hdfs动态扩容)

    1:按照上篇博客写的,将各个进程都启动起来: 集群规划:    主机名        IP                安装的软件                    运行的进程   master ...

  9. 【转】Android逆向入门流程

    原文:https://www.jianshu.com/p/71fb7ccc05ff 0.写在前面 本文是笔者自学笔记,以破解某目标apk的方式进行学习,中间辅以原理性知识,方便面试需求. 参考文章的原 ...

  10. cqoi2018

    题解: 很多模板题 第一次写莫队还比较顺利 除了把排序的cmp写错..(还第一次遇到) 这题分块也可以 先预处理出g[i][j]代表前i个块,颜色为j的有多少种 f[i][j]表示i-j的块能构成多少 ...