Django内置模型User常见的操作
Django内置的模型类User
常见的方法有:
create_user:创建普通用户,会对密码进行加密
create_superuser:创建超级用户,会对密码进行加密
set_password:对密码进行加密
username
password
email
is_superuser
is_staff
is_active
User模型的扩展
如果User模型中的字段不够,可以通过关联关系的方式进行扩增
自定义模型,通过OneToOneField
- 如果只有一张用户表,扩展方式为:
自定义一个模型,继承AbstractUser类,在自己的模型中定义额外的字段,需要在settings.py文件中农进行配置AUTH_USER_MODEL
设置为自己的模型,重新迁移
User模型中常见的方法
- create_user(username, password, email, **extra_fields)创建用户
extra_fields:代表传User模型中的其他属性
- create_superuser(username, password, email, **extra_fields)创建超级用户
- set_password:对密码加密
- check_password:检查密码
User模型在使用过程中,常见的函数
django.contrib.auth.hasher.make_password:对密码进行加密
django.coontrib.auth.hasher.check_password:检查密码是否一致
django.contrib.auth.authenticate(request, username, password):认证
认证成功会返回user对象 认证过程中做了三件事:1.根据用户名查到用户信息 2.比较密码 3.判断是否激活
django.contrib.auth.login(request, user):
向session中存储了三个值
SESSIN_KEY:登录的用户ID
BACKEND_SESSION_KEY:存的是一个类对应的字符串
HASH_SESSION_KEY:认证的Hash字符串
将认证成功的User对象,赋值给了request.user
django.contrib.auth.logout(request):用户的登出功能
Session 会话的工作原理
request.session: 是用来获取session
当用户使用 session (request.session)的时候,服务器会获取浏览器对应的cookie (request.COOKIES)
并找到 cookie name = sessionid 的 cookie
如果 找不到 (第一次使用session), 服务器会创建一个 session对象 ,并将 session的 ID 写入到
浏览器的 cookie 中 (response.addCookie) , name=sessionid , value = session的ID
如果 找到了 sessionid 对应的 cookie , 通过 cookie 对应 value值 ,去服务器中获取 session 对象
Session 适合存放的数据特点
-
django中的 session 存储的数据,必须能够JSON序列化
-
和用户相关的数据、用户指的是浏览器
Session 的默认存活时间是 : 2周
SESSION_COOKIE_AGE : 设置session的默认存活时间
SESSION_EXPIRE_AT_BROWSER_CLOSE : 设置 session存活时间是否随浏览器的关闭而消亡
SESSION_SERIALIZER : 设置 Session的序列化方式
request.session[key] = value
request.session.clear_expired() : 清除过期的session
request.session.flush() : 销毁当前session 对象
- Django内置user模型
- Django内置user模型中使用的方法详解
- 对Django中内置的User模型实例详解
- django:对django内置的User模型进行自定义扩展
- Django学习笔记 扩展User模型
- django 1.7 自定义用户user模型的三种方法
- Django模型层多表操作
- 记录替换django的user模型出现的异常InconsistentMigrationHistory
- django中模型的简单操作
- 【django】利用fbv模型与orm进行页面登录操作
- Django的ORM模型操作数据库
- javascript:面向对象和常见内置对象及操作
- django2.0中model模型操作
- django 自定义用户user模型的三种方法
- web框架开发-Django模型层(2)-多表操作
- Django在OS X下的编程实战(二)操作博客数据模型
- Django项目实践3 - Django模型(字段、数据库操作及模型继承)
- python Django 模型操作
- Django模型-数据库操作
- Django 自带认证功能auth模块和User对象的基本操作