广告
返回顶部
首页 > 资讯 > 后端开发 > Python >django验证系统的具体使用
  • 901
分享到

django验证系统的具体使用

django验证系统 2023-03-21 11:03:37 901人浏览 八月长安

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

摘要

目录user对象创建用户创建超级用户更改密码验证用户WEB请求认证用户如何登陆用户如何登出限制对未登录用户的访问LoginRequired Mixinuser对象 用户对象是认证系统

user对象

用户对象是认证系统的核心。Django的认证框架中的用户只有一个类

默认用户的主要属性

  • username
  • passWord
  • email
  • first_name
  • last_name

创建用户

创建用户最直接的方法是使用包含create_user()的函数

from djanGo.contrib.auth.models import User
user=User.objects.create_user("username","email","password")

创建超级用户

通过命令行方式创建超级用户

python manage.py createsuperuser 

更改密码

第一种:通过命令行方式

Python manage.py changepassword (你的用户名,如果没有输入,默认当前的用户)

第二种:通过数据模型开修改

from django.contrib.auth.models importf User
user=User.objects.get(username=(需要修改的用户名))
user.set_password("new password")
user.save()

验证用户

authenticate(request,username,password)
使用authenticate(request)来验证用户。它使用username和password作为参数来验证,对每个身份验证后端进行检查。如果后端验证有效,则返回一个User对象,如果没有,将返回None

web请求认证

django使用sessions和中间件将身份验证系统挂接到请求对象中

它们在每次请求都会提供request.user属性。如果当前没有用户登录。这个属性将会设置为AnonymousUser,否则将会被设置为user实例

你可以使用is_authenticatded区分两者

只读属性,始终返回 True (匿名用户 AnonymousUser.is_authenticated 始终返回 False )。这是一种判断用户是否已通过身份认证的方法。这并不意味着任何权限,也不会检查用户是否处于活动状态或是否具有有效会话。即使通常你会根据 request.user 检查这个属性,以确定它是否被 AuthenticationMiddleware 填充(表示当前登录的用户),但是你应该知道该属性对于任何 User 实例都返回 True。

if request.user.is_authenticated:
    pass
else:
    pass

用户如何登陆

如果有已验证的用户想添加到session中,将通过login()函数完成

login(request,user,)要在视图中让用户登录,使用 login() 。它需要 HttpRequest 对象和 User 对象。通过 Django 的 session 框架, login() 会在 session 中保存用户的ID。

from django.contrib.auth import authenticate,login
def fun(request):
    username=request.POST("username")
    password=request.POST("password")
    user=authenticate(request,username=username,password=password)
    if user is not None:
        login(request,user)
    else:
        pass

用户如何登出

logout(request)

如果已经通过django.contrib.auth.login()登录的用户想要登出,可以使用logout()方法,需要传入request

from django.contrib.auth import logout
def logout_view(request):
    logout(request)

限制对未登录用户的访问

原始方式

限制访问页面最原始的办法就是检查,request.user.is_authenticated并重定向到登录页面

from django.conf import settings
from django.shortcuts import redirect
def my_view(request):
    if not request.user.is_authenticated:
        return redirect()

login_required装饰器

作为快捷方式,你可以使用login_required()装饰器

from django.contrib.auth.decorators import login_required
@login_required
def my_view(request):
    ...

login_required()会执行以下操作:

  • 如果用户没有登录,会重定向到settings.LOGIN_URL,并传递绝对路径到查询字符串中,例如: /accounts/login/?next=/polls/3/ 。
  • 如果用户已经登录,则正常执行视图
  • login_required()也有可选参数login_url用来指定重定向的路由
  • 默认情况下,成功验证时用户跳转的路径保存在名为 "next" 的查询字符串参数中。如果你希望这个参数使用不同名称,请在 login_required() 中传递可选参数 redirect_field_name :

LoginRequired Mixin

使用基于类的视图时,可以使用LoginRequiredMixin实现和login_required相同的行为。这个Mixin应该在继承列表最左边的位置

from django.contrib.auth.mixins import LoginRequiredMixin
class MyView(LoginRequiredMixin,View):
    login_url="/login/"
    redirect_field_name="xxx"

到此这篇关于django验证系统的具体使用的文章就介绍到这了,更多相关django 验证系统内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: django验证系统的具体使用

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

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

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

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

下载Word文档
猜你喜欢
  • django验证系统的具体使用
    目录user对象创建用户创建超级用户更改密码验证用户web请求认证用户如何登陆用户如何登出限制对未登录用户的访问LoginRequired Mixinuser对象 用户对象是认证系统...
    99+
    2023-03-21
    django 验证系统
  • django验证系统如何使用
    这篇文章主要介绍了django验证系统如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇django验证系统如何使用文章都会有所收获,下面我们一起来看看吧。user对象用户对象是认证系统的核心。django...
    99+
    2023-07-05
  • django中websocket的具体使用
    websocket是一种持久化的协议,HTTP协议是一种无状态的协议,在特定场合我们需要使用长连接,做数据的实时更新,这种情况下我们就可以使用websocket做持久连接。http与...
    99+
    2022-11-13
  • Java实现EasyCaptcha图形验证码的具体使用
    EasyCaptcha github地址: https://github.com/whvcse/EasyCaptcha 简介 Java图形验证码,支持gif、中文、算术等类型,...
    99+
    2022-11-12
  • Django 序列化的具体使用
    目录一、简介二、使用1.基本使用2.自定义序列化字段3.连表序列化以及深度控制4.序列化字段url一、简介 django rest framework 中的序列化组件,可以说是其核...
    99+
    2022-11-12
  • Django视图函数的具体使用
    视图是 MTV 设计模式中的 V 层,它是实现业务逻辑的关键层,可以用来连接 M 层与 T 层,起着纽带般的作用,在《Django MTV和MVC的区别》中也做了相应的介绍,所以它的...
    99+
    2022-11-11
  • Django 聚合函数的具体使用
    前言 orm模型中的聚合函数跟MySQL中的聚合函数作用是一致的,也有像Sum、Avg、Count、Max、Min,接下来我们逐个介绍 聚合函数 所有的聚合函数都是放在djan...
    99+
    2022-11-12
  • django中只使用ModleForm的表单验证
    主题 众所周知,django.forms极其强大,不少的框架也借鉴了这个模式,如Scrapy。在表单验证时,django.forms是一绝,也是面向对象的经典表现。但要用它来渲染表单...
    99+
    2022-12-25
    django form表单验证 django中的modelform快速上手 Django ModelForm用法详解
  • Django基于Token的验证使用的实现
    目录什么是Token为什么要用Token基于 Token 的身份验证流程Token的组成形式Django如何使用Token什么是Token Token字面意思是令牌,功能跟Sessi...
    99+
    2022-11-12
  • Django验证码的生成与使用示例
    前言 本文主要介绍的是关于Django验证码生成与使用的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: 方法如下: 1、基于PIL生成一个带验证码的图片和验证码,生成验证码图片需要Monaco...
    99+
    2022-06-04
    验证码 示例 Django
  • django中path和url函数的具体使用
    在django学习中,经常看到这两种路由形式 from django.urls import path from django.conf.urls import url djang...
    99+
    2023-03-19
    django path django url
  • Python动力系统验证三体人是否真的存在
    目录随机三体三星问题随机三体 目前来说我们并不关心真实的物理对象,而只想看一下三个随机的点放在三个随机的位置,赋予三个随机的速度,那么这三个点会怎么走。所以其初始化过程为 m =...
    99+
    2022-11-12
  • Linux系统kill具体使用方法是什么
    本篇文章为大家展示了Linux系统kill具体使用方法是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。概念kill命令用来删除执行中的程序或工作。kill可将指定的信息送至程序。预设的信息为SI...
    99+
    2023-06-28
  • 使用Django实现商城验证码模块的方法
    本文主要涉及图形验证码的相关功能,主要包括,图形验证码获取、验证码文字存储、验证码生成等。 图形验证码接口设计和定义  验证码获取接口设计 uuid作为路径参数,唯一标识...
    99+
    2022-11-12
  • Django项目缓存优化的介绍及具体使用
    这篇文章主要讲解了“Django项目缓存优化的介绍及具体使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Django项目缓存优化的介绍及具体使用”吧!一、为什么要使用缓存大家可以想一下Dj...
    99+
    2023-06-02
  • Linux系统中fuser命令的具体用法
    本篇内容主要讲解“Linux系统中fuser命令的具体用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux系统中fuser命令的具体用法”吧!fuser 命令用指定的文件或者文件系统显示...
    99+
    2023-06-12
  • windows8系统高分辨显示优化设置保证最佳的用户体验
    Win8技巧:随着科技的发展,越爱越多的设备开始追求高清屏幕,动辄1920*1080的分辨率确实使画面更加细腻美观,但是随之也产生了一些用户体验上的麻烦——在固定的大小范围内显示出更...
    99+
    2022-06-04
    优化设置 用户 系统
  • win8系统字体使用MacType工具修改方法
      由于不能像往常一样在系统里手动修改字体了,所以我们需要用到一款工具,MacType(下载)是个不错的软件,这里能起到作用。所以我们这里就介绍下MacType的用法。   安装MacType时没有太多需要...
    99+
    2022-06-04
    字体 工具 方法
  • Linux系统top命令的具体使用方法是什么
    这篇文章跟大家分析一下“Linux系统top命令的具体使用方法是什么”。内容详细易懂,对“Linux系统top命令的具体使用方法是什么”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面跟着小编一起深入学习...
    99+
    2023-06-28
  • Linux系统file命令的具体使用方法是什么
    Linux系统file命令的具体使用方法是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。\1. Windows以不同的扩展名来区分不同的文件,例如:.exe...
    99+
    2023-06-28
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作