Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。
from django.contrib.auth import authenticate, login, logout
Django 提供 auth 模块是一套标准的权限管理系统,可以提供用户身份认证, 用户组和权限管理。auth 可以和 admin 模块配合使用, 快速建立网站的管理系统。
① login(HttpRequest, user) 用户登录
该函数接受一个HttpRequest对象,以及一个认证的 User 对象。
此函数使用 django 的 session 框架给某个已认证的用户附加上 session id 等信息。
telephone = form.cleaned_data.get("telephone")
password = form.cleaned_data.get("password")
remember = form.cleaned_data.get("remember")
# username=telephone 验证字段
user = authenticate(request, username=telephone, password=password)
# 判断是否登录
if user:
login(request, user)
if remember:
# 如果设置过期时间为None,那么就会使用默认的过期时间
request.session.set_expiry(None)
else:
# 如果设置过期时间为0,那么浏览器关闭就会结束
request.session.set_expiry(0)
# 如果登录成功就跳转到主页
return redirect(reverse("news:index"))
else:
messages.info(request, "用户名或密码错误!")
return redirect(reverse("xfzauth:login"))
② authenticate() 用户认证
提供了用户认证,即验证用户名以及密码是否正确,一般需要username password两个键字参数。如果认证信息有效,会返回一个 User 对象。authenticate() 会在User 对象上设置一个属性标识给后端认证用户,且该信息在登录过程中是需要的。
③ logout(request) 注销用户
该函数接受一个 HttpRequest 对象,无返回值。当调用该函数时,当前请求的 session信息会全部清除。该用户即使没有登录,使用该函数也不会报错。
def logout_view(request):
logout(request)
return redirect('/')
信号量