1. 内建用户系统本篇文章要点:
内建用户系统文件上传django-发送邮件项目部署-uWSGI项目部署-nginx
django自带一个用户认证系统,它可以处理用户账号、组、权限以及基于cookie的用户会话。
内建模型类引入:from django.contrib.auth.models import User
在数据库中查看内建模型类的属性Field:
模型 *** 作创建用户
user = User.objects.create_user(username='',password=''等等) #会自动把密码处理成哈希值等等 #创建超级用户 user = User.objects.create_superuser(username='', password=''等等)
删除用户
from django.contrib.auth.models import User #一查二改三保存 u = User.objects.get(username='用户名') user.is_active = False user.save()
校验密码
django内置用户系统提供了密码校验的方法,不需要向传统方法转换为哈希值校验 。
from django.contrib.auth import authenticate user = authenticate(username=username,password=password) # 校验成功返回对应的user对象,否则返回None
修改密码
#1获取user user.set_password() #3保存
登录状态保持
from django.contrib.auth import login def login_view(request): user = authenticate(username=username,password=password) if user: login(request, user) #else:跳转到settings.py中LOFIN_URL = '/login'
此方法只会存取session,而且存活时间不可控
登录状态校验
from django.contrib.auth.decorators import login_required @login_required def index_view(request):#登录状态下访问视图 #当前登录用户获取 login_user = request.user
登录状态取消
from django.contrib.auth import logout def logout_view(request): logout(request)
如何扩建内建用户表字段?tip:?next=/index 在登录完成后可以设计返回原来的页面
方案一
建立新表,跟表做1对1。
方案二
继承内建的抽象user模型类:把内建表的模型类粘贴到自己模型层中,不让内建模型层初始化;
注意 此方案必须在数据库迁移之前就定义好所有的表字段。
- 添加新的应用定义模型类继承AbstractUsersetting.py中AUTH_USRE_MODEL ='应用名.类名' (此 *** 作必须在第一次migrate之前进行)
2. 文件上传
应用场景
- 上传头像上传流程性的文档[pdf,txt等]
上传规则-前端 [HTML]
- 文件上传必须为post提交方式
评论列表(0条)