User authentication in Django(用户认证)
一,概述:
auth 系统包括:
1)Users
2)Permissions: Binary (yes/no) flags designating whether a user may perform a certain task.(权限:二进制(是/否)标志,指示用户是否可以执行某个任务。)
3)Groups: A generic way of applying labels and permissions to more than one user.(组:向多个用户应用标签和权限的通用方法。)
4)A configurable password hashing system(一个可配置的密码散列系统)
5)Forms and view tools for logging in users, or restricting content(用于用户登录或者限制内容的表单和视图工具)
6)A pluggable backend system(一个可插入的后台系统)
7)Password strength checking(密码强度检查)
8)Throttling of login attempts(限制登录尝试)
9)Authentication against third-parties (OAuth, for example)(针对第三方的认证,例如(OAuth))
Installation(安装)
1)INSTALLED_APPS中配置 django.contrib.auth' 和django.contrib.contenttypes
2)在MIDDLEWARE中配置 'django.contrib.sessions.middleware.SessionMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware',
Usage(用法)
一,Using the Django authentication system¶(使用Django 认证系统)
1)User objects:The primary attributes of the default user are:(默认用户的主要属性): username, password, email,firstname,lastname
2)Creating users:
>>> from django.contrib.auth.models import User
>>> user = User.objects.create_user('john', 'lennon@thebeatles.com', 'johnpassword') # At this point, user is a User object that has already been saved
# to the database. You can continue to change its attributes
# if you want to change other fields.
>>> user.last_name = 'Lennon'
>>> user.save()
3)Creating superusers
$ python manage.py createsuperuser --username=joe --email=joe@example.com
4)Changing passwords
>>> from django.contrib.auth.models import User
>>> u = User.objects.get(username='john')
>>> u.set_password('new password')
>>> u.save()
5)Authenticating users
from django.contrib.auth import authenticate
user = authenticate(username='john', password='secret')
if user is not None:
# A backend authenticated the credentials
else:
6)Authentication in Web requests判断用户是否登录
if request.user.is_authenticated:
# Do something for authenticated users.(已登录)
...
else:
# Do something for anonymous users.
7)How to log a user in(如何登录用户)
from django.contrib.auth import authenticate, login def my_view(request):
username = request.POST['username']
password = request.POST['password']
user = authenticate(request, username=username, password=password)
if user is not None:
login(request, user)
# Redirect to a success page.
...
else:
# Return an 'invalid login' error message.
8)How to log a user out¶(如何退出)
from django.contrib.auth import logout def logout_view(request):
logout(request)
# Redirect to a success page.
8)登录装饰器(The login_required decorator¶)
from django.contrib.auth.decorators import login_required @login_required
def my_view(request):
User authentication in Django(用户认证)的更多相关文章
- django用户认证系统——拓展 User 模型
Django 用户认证系统提供了一个内置的 User 对象,用于记录用户的用户名,密码等个人信息.对于 Django 内置的 User 模型, 仅包含以下一些主要的属性: username,即用户名 ...
- django用户认证系统——拓展 User 模型2
Django 用户认证系统提供了一个内置的 User 对象,用于记录用户的用户名,密码等个人信息.对于 Django 内置的 User 模型, 仅包含以下一些主要的属性: username,即用户名 ...
- Django——用户认证
Django--用户认证 用户与Authentication(身份验证) Django 用户认证系统处理用户帐号,组,权限以及基于cookie的用户会话. 这个系统一般被称为 auth/auth (认 ...
- [django]用户认证中只允许登陆用户访问(网页安全问题)
当设计一个重要网页时,一般要求未从登陆界面访问的用户不能进入其他页面,那么需要如何设置呢? 如下 django中的url.py urlpatterns = [ url(r'^$', 'login ...
- Django 用户认证及OneToOneField
Django 用户认证如果自己不想写 就可以用django自带的认证 首选导入模块 models.py #!/usr/bin/env python #_*_ coding:utf8 _*_ from ...
- “Django用户认证系统”学习资料收集
首推追梦人物——Django用户认证系统 待续……
- Django 2.0 学习(17):Django 用户认证(auth模块)
Django 用户认证(auth模块) 一.认证登陆 在进行用户登陆验证的时候,如果是自己写代码,就必须要先查询数据库,看用户输入的用户名是否存在于数据库中:如果用户存在于数据库中,然后再验证用户输入 ...
- django用户认证系统——重置密码7
当用户不小心忘记了密码时,网站需要提供让用户找回账户密码的功能.在示例项目中,我们将发送一封含有重置用户密码链接的邮件到用户注册时的邮箱,用户点击收到的链接就可以重置他的密码,下面是具体做法. 发送邮 ...
- django用户认证系统——修改密码6
再此之前我们已经完成了用户登录.注册.注销等功能,接下来让我们继续为用户提供修改密码的功能.该功能 Django 的 auth 应用也已经为我们提供,过程几乎和之前的登录功能完全一样. 编写修改密码模 ...
随机推荐
- java 线程理解
import java.util.concurrent.Executor; import java.util.concurrent.ExecutorService; import java.util. ...
- nexus 数据库备份任务webhook 通知-另外一种方法
使用benthos 做为webhook,是一种方法,功能很强大,但是有点复杂,所以换了一个更简单直接的webhook 工具 根据请求的数据,只处理关于db exporter 任务部分的消息,然后就是调 ...
- java8_api_math
java.math包 BigDecimal BigInteger MathContext RoundingMode这是枚举 BigDecimal 不 ...
- 详解在Linux下实现(彩色)进度条程序,并通过makefile进行编译.
彩色进度条的实现与makefile编译: 创建一个process文件,在里面编写实现进度条的代码 1.在编写代码的时候我们首先要区分两个转义字符:\n \r \n:表示换行,换到下一行,并位于起 ...
- linux下目录简介——/proc
1. /proc目录Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构.改变内核设置的机制.proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间.它以文 ...
- 如何让 KiCad EDA 5.1 不显示铺铜
如何让 KiCad EDA 5.1 不显示铺铜 在画板最后给 PCB 铺地,铺地结束后检查然后发板出去打板. 板子回来焊接,调试时发现有问题,边调边改线路,打开 KiCad 一看满屏的铜皮,怎么改呀? ...
- 黄聪:Windows2012-IIS8安装SSL证书
开始菜单->右上角搜索按钮-> mmc 弹出窗口 关闭控制台会提示保存 打开iis新建站点,为了兼容不支持sni的浏览器,绑定默认https
- C89 和 C99 标准比较
注1: GCC支持C99, 通过 --std=c99 命令行参数开启,如: 代码:gcc --std=c99 test.c 注2:FFMPEG使用的是C99.而VC支持的是C89(不支持C99) ...
- How do I improve my English speaking skills in a very short time?
You have asked some very important questions. I think the first step is to prioritize the issues: Yo ...
- 配置中心Nacos
Nacos 是阿里巴巴2018年7月份开源的项目,如其名, Naming Configuration Service ,专注于服务发现和配置管理领域. Nacos 是什么?上面已经大概介绍了,更多详细 ...