首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django实战-信息资讯-用户认证

Django实战-信息资讯-用户认证

作者头像
小团子
发布2019-07-18 17:01:23
5430
发布2019-07-18 17:01:23
举报
文章被收录于专栏:数据云团数据云团

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('/')

信号量

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据云团 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档