django之auth模块

'''

今天傻逼了,整理了很久的笔记,结果因为更新了navigate,忘记保存重启,内存清空,数据都丢了,所以我先把今天所学的知识,大体讲一下,周末再具体进行补充。

'''

#auth模块主要就是围绕用户表,完成用户登录注册,修改密码,添加字段等作用的,可以加语法糖,全局,局部配置,

#然后可以用auth模块可以对字段进行扩充,就是继承,再加个配置

##下面是粗略的笔记,周六上午重新整理完

1.auth模块

用auth模块 你就用全套 不是自己写一部分 用别人一部分

如何创建超级用户 用于登录django admin的后台管理

createsuperuser

校验用户是否存在

user_obj = auth.authenticate(username=username,password=password)

# 返回的是数据对象 没有返回None

保存用户登录状态

auth.login(request,user_obj)

# 执行完这一句之后 只要是能够拿到request的地方

# 都可以通过request.user获取到当前登录用户对象

判断当前用户是否登录

request.user.is_authenticated()

获取当前用户数据对象

request.user

如何给视图函数加上校验用户是否登录的校验

from django.contrib.auth.decorators import login_required

# @login_required(login_url='/xxx/') # 局部配置

@login_required # 全局配置

def home(request):

return HttpResponse('home页面')

# 当用户没有登录的情况下 跳转的url有两种配置方式

1.在装饰器括号内通过login_url参数局部指定

2.全局配置 用户没有登录的情况下 所有的视图统一跳转到一个url

配置文件中

LOGIN_URL = '/login/'

修改密码

校验原密码是否正确

is_right = request.user.check_password(old_password)

设置新密码

request.user.set_password(new_password)

request.user.save()

用户注册

from django.contrib.auth.models import User

User.objects.create(username=username,password=password)

# 不用使用create 密码会直接存成明文

User.objects.create_user(username=username,password=password)

# 创建普通用户

User.objects.create_superuser(

username=username,password=password,

email='123@qq.com')

# 创建超级用户 邮箱字段必须填写

扩展auth_user表的字段

第一种(不好用)

利用一对一表关系 扩展字段

第二种(继承)

1.自己写一个默写类 继承原来的auth_user类 然后在settings配置文件中 告诉django使用你新建的类来替代auth_user表

from django.db import models

from django.contrib.auth.models import AbstractUser

# Create your models here.

class Userinfo(AbstractUser):

"""

强调 你继承了AbstractUser之后 你自定义的表中

字段不能跟原有的冲突

"""

phone = models.BigIntegerField()

avatar = models.FileField()

register_time = models.DateField(auto_now_add=True)

2.一定要在settings配置文件中指定

AUTH_USER_MODEL = 'app01.Userinfo'

# 固定语法: AUTH_USER_MODEL = '应用名.表名'

"""

通过上面的方式 继承的表 还可以继续使用auth模块所有的功能

"""

温馨提示 当你需要些用户相关的功能的时候可以考虑使用auth模块

自定义中间件的配置

"""

思路:

首先,中间件就是一个多重防御的保安,对内可以实现全局的操作,对外可以根据需要筛选请求,基于前一个功能,我们自定义了一个中间件,主要功能就是要 暂停某个功能的使用,只需要在配置文件中注释掉相关的模块语句就可以了(就像之前的csrf一样)

"""

python middleware模块_python之auth模块相关推荐

  1. 简述python中怎样导入模块_Python中导入模块的两种模式,import

    import import pandas import pandas as pd 使用函数方式:.(),或者.() 比如 pandas.read_csv("data/stock.csv&qu ...

  2. python必学的模块_Python常用的模块

    模块和包 1.1模块介绍模块定义:一系列功能的集合体 模块使用: import导入模块 或者 from ... import... 导入模块 模块分类:内置模块 自定义模块 第三方模块 模块加载顺序: ...

  3. python的窗口处理模块_python的图像处理模块

    除了opencv专门用来进行图像处理,可以进行像素级.特征级.语义级.应用级的图像处理外,python中还有其他库用来进行简单的图像处理,比如图像的读入和保存.滤波.直方图均衡等简单的操作,下面对这些 ...

  4. python安装os模块_python的os模块(ipython,文件,目录,权限,管理)

    什么是os模块 os模块提供了多数操作系统的功能接口函数.当os模块被导入后,它会自适应于不同的操作系统平台,根据不同的平台进行相应的操作,在python编程时,经常和文件.目录打交道,这时就离不了o ...

  5. python psycopg2使用_Python中用psycopg2模块操作PostgreSQL方法

    其实在Python中可以用来连接PostgreSQL的模块很多,这里比较推荐psycopg2.psycopg2安装起来非常的简单(pip install psycopg2),这里主要重点介绍下如何使用 ...

  6. python中自带的模块_python中的模块详解

    概念 python中的模块是什么?简而言之,在python中,一个文件(以".py"为后缀名的文件)就叫做一个模块,每一个模块在python里都被看做是一个独立的文件.模块可以被项 ...

  7. python xlrd模块_python之xlrd模块

    xlrd模块 一.xlrd模块 1.python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库,这两个适用于.xls格式有效 2. xlrd模块 ...

  8. c调用python第三方库_Python使用ctypes模块调用DLL函数之C语言数组与numpy数组传递...

    在Python语言中,可以使用ctypes模块调用其它如C++语言编写的动态链接库DLL文件中的函数,在提高软件运行效率的同时,也可以充分利用目前市面上各种第三方的DLL库函数,以扩充Python软件 ...

  9. python内建模块_Python 内建模块

    1.内建模块: 在Python中,有一个内建模块,该模块中有一些常用函数;而该模块在Python启动后.且没有执行程序员所写的任何代码前,Python会首先加载该内建函数到内存.另外,该内建模块中的功 ...

最新文章

  1. 向窗体中拖放图片并显示
  2. 期未课程设计:基于SSM的产品销售管理系统
  3. PAT甲级1001.A+B Format(20)
  4. 【Qt笔记】对象模型
  5. ajax实现局部删除,Express+AdminLTE+hbs+Ajax实现局部刷新终极版(第二部分)
  6. 在ASP.NET 3.5中使用新的ListView控件(5)
  7. MapReduce之RecordWriter理解
  8. 百度深度学习图像识别决赛代码分享(OCR)
  9. 解决php使用ZipArchive解压时中文乱码问题(纯php,绕开ZipArchive)
  10. Python基础语法题库
  11. 如何提高测试团队效率?
  12. 奇异矩阵和非奇异矩阵 行列式矩阵简单理解 代数意义 几何意义 行列式的定义: 二阶行列式的几何意义: 三阶行列式的几何意义: 行列式化为对角形的几何解释: 二阶行列式乘积项的几何意
  13. 如何使用word删除签名图片背景
  14. 树莓派控制超声波测距原理及实现
  15. 通信 之 无线信道衰落
  16. PC浏览器调试手机浏览器工具
  17. Windows安装Gitea
  18. 「Python入门」Python代码规范(风格)
  19. node.js v14.9.0以及v12.18.3两版本 百度网盘下载链接
  20. RabbitMQ:消费者和生产者。

热门文章

  1. STM32工作笔记004---了解高速版PCB设计Cadence
  2. System学习笔记001---WIN10 win10按哪里哪里出现蓝色框
  3. theano 0.7 版本降到0.6 版本
  4. 附件计算器中的MC、MR、MS、M+作用
  5. delphi 整数类型的表述
  6. 司机行为识别_台州交警上线“闯红灯抓拍神器”人脸识别+4米大屏,拍到违章直接曝光...
  7. 51单片机入门教程(5)——定时器中断
  8. python字典调用_python 字典访问的三种方法
  9. python sklearn 支持向量机_python机器学习库sklearn之支持向量机svm介绍
  10. suse linux修改ftp端口,suse Linux系统下的网络设置(ftp telnet xmanager)