广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Django之auth组件
  • 521
分享到

Django之auth组件

组件Djangoauth 2023-01-30 22:01:04 521人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

一、Auth模块是什么   Django内置的用户认证系统 ,可以快速 的实现,登录,注销,修改密码... 二、Auth用法:   1、先创建超级用户 :      python3 manage.py createsuperuser;

一、Auth模块是什么

  Django内置的用户认证系统 ,可以快速 的实现,登录,注销,修改密码...

二、Auth用法:

  1、先创建超级用户 :

    

python3 manage.py createsuperuser;

输入用户名,邮箱 (可以不输入),密码,敲击回车,创建成功。也就是在auth_user这个表中插入了一条数据(密码 是加密的,所以我不能手动插入)

 

  2、验证用户:

    

from djanGo.contrib import auth

    user=auth.authenticate(request,username=name,passWord=pwd)

    相当于在查询 :user=models.User.objects.filter(name=name,pwd=pwd).first()

  如果校验通过,会返回一个user 对象,通过判断user对象,校验是否验证成功

 

  3、登录

    

auth.login(request,user);其实就是在session中写了一条数据

 

  4、一旦登录成功 ,调了 这个函数 login(request,user),以后 在视图类,函数中的request对象中,就有一个user对象,就是当前登录的用户对象,如果没有登录,request.user=AnonymousUser,匿名用户 。

  5、注销:

    

auth.logout(request); 内部调用 了request.session.flush(),删除了登录 状态

 

  6、登录认证装饰器:

    

from django.contrib.auth.decorators import login_required
@login_required(redirect_field_name='eee',login_url='/login/')
-redirect_field_name:修改?后面的key值, -login_url:如果没有登录,跳转到的页面 -可以局部配置 -可以全局配置(在setting中)

# 全局的配置,如果没有登录,跳到这个路由 LOGIN_URL='/login/'

  7、创建用户:

    

from  django.contrib.auth.models import User

    创建 超级用户和普通 用户,不能用create 
即:user=User.objects.create(username=name,password=pwd) 创建超级用户:     user=User.objects.create_superuser(username=name,password=pwd) 创建普通用户:     user=User.objects.create_user(username=name,password=pwd)

 

  8、校验密码:

    

request.user.check_password(pwd)
先拿到用户(可以登录用户,可以现查)

 

  9、修改密码:

    

user.set_password(pwd)

user.save()

注意:一定要调用save(),否则是不保存的

 

  10、is_authenticated():  如果通过验证,输出true,反之false

  11、其他方法(了解)

    

is_active:禁止 登录网站(用户好存在,封号 )

is_staff:是否对网站有管理权限(能不能登录admin)

 

  12、删除用户

    ORM删除,

如果 想在认证组件上加手机号 等其他字段:如何处理?

方法一:

1、定义一个表模型 ,跟User一对一管理 

from django.contrib.auth.models import User

class UserDetail(models.Model):
phone=models.CharField(max_length=32)
# 一对一跟auth_user表做关联
# 如果是从外部引入的表模型,是不能加引号的
# 如果加引号,只是在当前model找
user=models.OneToOneField(to=User)
方法二:

2、定义一个表模型,继承(AbstractUser)
from django.contrib.auth.models import AbstractUser
class UserInfo(AbstractUser):
# username,password...都有
phone=models.CharField(max_length=32)
sex=models.BooleanField()
-在setting中配置:
AUTH_USER_MODEL ='app01.UserInfo'
-做数据库迁移,以后就没有auth_user这个表了,以后认证组件用的表就是UserInfo
-原来auth中的其他操作:
-authentication
-login
-logout
-set_password
....
---一样用,完全一样
-不一样的地方:
如果之前用到User这个表模型的地方,都换成UserInfo

三、博客项目 

1 需求分析
    首页(显示文章)
    文章详情 
    点赞,点踩
    文章评论
      字评论
      评论的展示
    登录功能(图片验证码)
    注册功能(基于form 验证,ajax)
    个人站点(不同人不同样式,文章过滤)
    后台管理:
      文章展示
    新增文章 
      富文本编辑器

2 设计程序(框架,数据库设计)
-UserInfo----用户表
-blog-----个人站点表
-Article----文章表
-commit----评论表
-upanddown----点赞点踩表
-category---文章分类表
-tag---文章标签表
-表关系
-userInfo跟blog ---- 一对一
-article跟blog-----一对多
-article跟category----(一篇文章只能由一个分类,一个分类下有多篇文章)一对多
-article跟tag----(一个标签可以对应多篇文章,一篇文章可以有多个标签)多对多
-commit跟Article---- 一对多
-upanddown跟Article---- 一对多
-user跟commit---一对多
-user跟upanddown---一对多
-category跟blog----一对多
-tag跟blog----一对多

3 分任务开发git)

4 测试

5 上线
博客项目

 

  

--结束END--

本文标题: Django之auth组件

本文链接: https://www.lsjlt.com/news/180359.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Django之auth组件
    一、Auth模块是什么   django内置的用户认证系统 ,可以快速 的实现,登录,注销,修改密码... 二、Auth用法:   1、先创建超级用户 :      python3 manage.py createsuperuser; ...
    99+
    2023-01-30
    组件 Django auth
  • Django auth组件
    目录 一.认证系统 二.用户对象 1.创建用户 2.用户认证 4.注销用户 5.判断用户是否登录 ...
    99+
    2023-01-30
    组件 Django auth
  • Django之forms组件
      一、校验数据功能   我们在写注册页面时,之前只是提交了数据,然后就保存了数据,后端根本就没有对数据进行校验,比如价格写的不是纯数字也让保存,这肯定是不行的,在前端是可以校验的,但我们不能只依靠前端验证,万一前端不校验,那整个过程就没...
    99+
    2023-01-30
    组件 Django forms
  • Django之Form组件
    一 Form介绍      我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来。   与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户是否输入,输入的长度...
    99+
    2023-01-30
    组件 Django Form
  • Django之频率组件
    一、频率简介 为了控制用户对某个url的请求 的频率,比如 ,一分钟以内,只能访问三次 二、自定义频率类,自定义频率规则 自定义的逻辑 (1)取出访问者的ip (2)判断当前ip不在访问字典里,添加进去,并且直接返回True,表示第一...
    99+
    2023-01-30
    组件 频率 Django
  • Django之用户认证组件
      用户认证组件用的是Django自带一个表:auth_user   一、auth模块   1,authenticate()判断用户是否存在方法 user=authenticate(username='xxx',password='xx...
    99+
    2023-01-30
    组件 用户 Django
  • Django学习之八:forms组件【对
    目录 Django forms组件 bound and unbound form instance forms渲染有关 隐藏一个字段...
    99+
    2023-01-30
    组件 Django forms
  • Django-admin组件
    知识预览 Django 如何使用admin组件来对后台数据进行管理的? Django admin如何实现后台数据管理的?(admin源码解析) 如何仿照admin实现一个自定义的增删改查的组件? ...
    99+
    2023-01-30
    组件 Django admin
  • Django之中间件
    中间件介绍   中间件是一个用来处理Django的请求和响应的框架级别的钩子。它是一个轻量、低级别的插件系统,用于在全局范围内改变Django的输入和输出。每个中间件组件都负责做一些特定的功能。   但是由于其影响的是全局,所以需要谨慎使...
    99+
    2023-01-30
    中间件 Django
  • Django之无名分组,有名分组
    在Django 2.0版本之前,在urls,py文件中,用url设定视图函数 urlpatterns = [ url(r'login/',views.login), ] 其中第一个参数是正则匹配,如下代码,输入http://127...
    99+
    2023-01-31
    有名 Django
  • django组件--cookie与session
    django组件--cookie与session什么是会话跟踪技术在一个会话的多个请求中共享数据,这就是会话跟踪技术。例如在一个会话中的请求如下: 请求银行主页; 请求登录(请求参数是用户名和密码);请求转账(请求参数与转账相关的...
    99+
    2023-01-30
    组件 django session
  • Django框架CBV装饰器中间件auth模块CSRF跨站请求问题
    CBV添加装饰器 给CBV添加装饰器有三种方法,三种方法都需要导入模块: from django.utils.decorators import method_decorator...
    99+
    2022-11-12
  • Django之Ajax文件上传
     请求头ContentType     ContentType指的是请求体的编码类型,常见的类型共有3种:     1 application/x-www-form-urlencoded(看下图)       这应该是最常见的 POST ...
    99+
    2023-01-30
    文件上传 Django Ajax
  • Django中ContentType组件怎么用
    这篇文章将为大家详细讲解有关Django中ContentType组件怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。问题如何在一张表上对多个表进行外键关联from django.db&nbs...
    99+
    2023-06-21
  • Django中如何使用 Form组件
    Django中如何使用 Form组件,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。为什么需要Form组件注:Form组件,只适用于,前后端...
    99+
    2022-10-19
  • 源码分析Django的message组件
    目录Django的Message组件(源码分析)1. 配置2. 设置值3. 读取值4. 源码分析4.1第一步: 设置值4.2 第二步: 读取值Django的Message组件(源码分...
    99+
    2023-05-18
    Django message组件 Django message
  • django之路由分组,反向解析,有名,
    路由层   无名分组   有名分组   反向解析   路由分发   名称空间   伪静态的概念 urlpatterns = [   url(r'^admin/', admin.site.urls),   url(r'test...
    99+
    2023-01-31
    路由 有名 django
  • day 63 Django基础九之中间件
        本节目录 一 前戏 二 中间件介绍 三 自定义中间件 四 中间件的执行流程 五 中间件版登陆认证 六 xxx 七 xxx 八 xxx 一 前戏      我们在前面的课程中已经学会了...
    99+
    2023-01-31
    中间件 基础 day
  • 轻松学Vue组件之单文件组件
    目录前言一,创建单文件组件二,关于不同版本的Vue三,vue. config. js配置文件四,ref属性五,配置项props六,mixin(混入)七,插件八,scoped总结前言 ...
    99+
    2023-03-08
    vue 单文件 vue单文件组件 vue单文件组件如何使用
  • Jetpack Compose基础组件之文字组件
    目录概述文字组件1.Text 文本2.Text的style文字样式3.maxLines参数4.fontFamily字体风格5.AnnotatedString多样式文字6.Select...
    99+
    2023-05-14
    Jetpack Compose文字组件 Jetpack Compose基础组件
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作