【一】命令行创建用户
【1】语法
python manage.py createsuper
【2】示例
- 用户名
- 默认是是电脑名称
- 邮箱
- 可以填也可以不填
- 密码
- terminal中:输入密码不显示出来
- manage.py中:明文输入
- 输入密码太简单会提示
Username (leave blank to use 'administration'): admin
Email address: 123@qq.com
Password:
Password (again):
This password is too short. It must contain at least 8 characters.
This password is too common.
This password is entirely numeric.
Bypass password validation and create user anyway? [y/N]: y
Superuser created successfully.
【3】保存的数据
-
默认数据保存在数据库
- auth_user
-
所以需要提前执行迁移数据库命令
-
数据内容
- id: 用户的唯一标识符,是一个自动增长的整数。
- password: 用户的哈希密码。Django会自动地为密码加密,所以这个字段存储的是加密后的密码,而不是明文密码。
- last_login: 用户最后一次登录的时间。
- is_superuser: 一个布尔值,表示用户是否是超级用户。超级用户可以访问和管理所有的内容,包括由Django的admin应用提供的管理界面。
- username: 用户的用户名。这是用户的主要标识,用于登录等操作。
- first_name and last_name: 用户的名和姓。
- email: 用户的电子邮件地址。
- is_staff: 一个布尔值,表示用户是否是工作人员。工作人员可以访问由Django的admin应用提供的管理界面。
- is_active: 一个布尔值,表示用户的账号是否是活跃的。你可以通过设置这个字段来禁用一个用户的账号。
- date_joined: 用户加入(即,用户的账号被创建)的日期和时间。
【二】admin登录
【1】登录
-
项目启动
- 就可以输入admin路由进入
-
登录成功页面
- 包括用户 (
User
) 和组 (Group
)
- 包括用户 (
【2】功能
-
用户管理:
- 在用户管理界面,可以查看、创建、修改和删除用户。
- 可以查看用户的详细信息,如用户名、电子邮件、是否是工作人员、是否是超级用户等。
- 可以修改这些信息,或者创建新的用户。
- 此外,还可以为用户设置密码,或者删除用户。
-
组管理:
-
在组管理界面,可以查看、创建、修改和删除组。
-
可以查看一个组的成员,或者将用户添加到组中,或者从组中移除用户。
-
还可以为组分配权限。这些权限决定了组的成员可以访问和修改哪些资源。
-
组是一种方便的方式来管理一组有相同权限的用户
- 比如:可以创建一个 “编辑” 组,为它分配修改文章的权限,然后将所有的编辑添加到这个组。
- 这样就可以通过管理组来管理编辑的权限,而不是为每个编辑单独设置权限。
-
-
权限管理:
- 在用户和组的管理界面,可以为用户和组分配权限。
- 权限通常与你的模型相关。
- 比如,对于一个文章 (
Article
) 模型,可能有 “添加文章”、“修改文章” 和 “删除文章” 等权限。 - 可以为用户或组分配这些权限,以控制他们可以访问和修改哪些资源。
- 比如,对于一个文章 (
【三】登录、验证、跳转
【1】方法
(1)导入模块
from django.contrib import auth
(2)authenticate函数
auth.authenticate(request, username, password)
- 验证提供的用户名和密码是否匹配
- 如果匹配,它将返回一个
User
对象 - 如果不匹配,它将返回
None
。
(3)login函数
auth.login(request, user_obj)
- 用于在当前的会话中登录用户
- 用户的 ID 将被保存在会话中
- 所以在后续的请求中,可以使用
request.user
来获取当前的用户
(4)is_authenticated属性
-
request.user
- 没有登录是
AnonymousUser
,匿名用户,是个对象 - 登录成功是用户名,但是任然是个对象
- 没有登录是
-
request.user.is_authenticated
- 用于判断用户是否已经登录。
- 如果用户已经登录,它将返回
True
- 否则,它将返回
False
(5)login_required装饰器
-
@login_required(login_url)
-
用于确保视图函数只能被已经登录的用户访问
-
如果用户没有登录,它将重定向到登录页面
-
登录成功将返回原始界面
-
-
跳转-局部配置
- 指定
login_url=‘/login/‘
- 指定
-
跳转-全局配置
- settings文件夹中添加
LOGIN_URL = '/login/'
- 装饰器将不必代括号
-
优先级
- 局部优先级