Django中的用户认证概述
Django带有一个用户认证系统,它负责处理用户账户、组、权限以及用户会话cookie。认证系统包括认证和授权(authentication 和 antuorization
),认证是对一个系统声明的用户进行验证,授权是决定哪个已经认证的用户允许做什么。认证系统包括:
- 用户(Users)
- 权限(Permissions)
- 用户组(Groups)
- 一个可配置的密码散列系统
- 表单和查看工具,用于登录用户或限制内容
- 可插入的后端系统
- *
安装
认证在django.contrib.auth
包中作为Django contrib
模块捆绑在一起。 默认情况下,所需的配置已包含在由django-admin startproject
生成的settings.py中,这些配置由INSTALLED_APPS
设置中列出的两个项目组成:
'django.contrib.auth'
:包含认证框架的核心,以及它的默认模型。'django.contrib.contenttypes'
:是Django内容类型系统,它允许权限与创建的模型相关联。
1.User对象
User对象是认证系统的核心, 它代表访问网站的人,可以用于启用限制访问、注册用户配置文件、管理创建者和内容等。在认证框架中,User对象只有一个类:django.contrib.auth.models.User
,超级用户或管理员用户是仅仅具有一些特殊属性的用户,而不是不同的User类。默认主要属性有:
username
:
passoword
:
email
:
first_name
:
last_name
:
创建用户
创建用户最直接的方式是通过create_user()
函数:
>>> 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()
create_user(username, email=None, password=None, **extra_fields)
创建超级用户
通过如下命令创建超级用户: