Django的session中对于用户验证的支持

 更新时间:2015年07月23日 09:50:36   投稿:goldensun  
这篇文章主要介绍了Django的session中对于用户验证的支持,Django是百花齐放的Python框架中人气最高的一个,需要的朋友可以参考下


用户与Authentication

通过session,我们可以在多次浏览器请求中保持数据, 接下来的部分就是用session来处理用户登录了。 当然,不能仅凭用户的一面之词,我们就相信,所以我们需要认证。

当然了,Django 也提供了工具来处理这样的常见任务(就像其他常见任务一样)。 Django 用户认证系统处理用户帐号,组,权限以及基于cookie的用户会话。 这个系统一般被称为 auth/auth (认证与授权)系统。 这个系统的名称同时也表明了用户常见的两步处理。 我们需要

    验证 (认证) 用户是否是他所宣称的用户(一般通过查询数据库验证其用户名和密码)

    验证用户是否拥有执行某种操作的 授权 (通常会通过检查一个权限表来确认)

根据这些需求,Django 认证/授权 系统会包含以下的部分:

    用户 : 在网站注册的人

    权限 : 用于标识用户是否可以执行某种操作的二进制(yes/no)标志

    组 :一种可以将标记和权限应用于多个用户的常用方法

    Messages : 向用户显示队列式的系统消息的常用方法

如果你已经用了admin工具(详见第6章),就会看见这些工具的大部分。如果你在admin工具中编辑过用户或组,那么实际上你已经编辑过授权系统的数据库表了。
打开认证支持

像session工具一样,认证支持也是一个Django应用,放在 django.contrib 中,所以也需要安装。 与session系统相似,它也是缺省安装的,但如果它已经被删除了,通过以下步骤也能重新安装上:

    根据本章早前的部分确认已经安装了session 框架。 需要确认用户使用cookie,这样sesson 框架才能正常使用。

    将 'django.contrib.auth' 放在你的 INSTALLED_APPS 设置中,然后运行 manage.py syncdb以创建对应的数据库表。

    确认 SessionMiddleware 后面的 MIDDLEWARE_CLASSES 设置中包含 'django.contrib.auth.middleware.AuthenticationMiddleware' SessionMiddleware。

这样安装后,我们就可以在视图(view)的函数中处理user了。 在视图中存取users,主要用 request.user ;这个对象表示当前已登录的用户。 如果用户还没登录,这就是一个AnonymousUser对象(细节见下)。

你可以很容易地通过 is_authenticated() 方法来判断一个用户是否已经登录了:

if request.user.is_authenticated():
  # Do something for authenticated users.
else:
  # Do something for anonymous users.


相关文章

  • Python解方程组 scipy.optimize.fsolve()函数如何求解带有循环求和的方程式

    Python解方程组 scipy.optimize.fsolve()函数如何求解带有循环求和的方程式

    这篇文章主要介绍了Python解方程组 scipy.optimize.fsolve()函数如何求解带有循环求和的方程式,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06
  • Python实现批量导入1000条xlsx数据

    Python实现批量导入1000条xlsx数据

    本文主要介绍了Python实现批量导入1000条xlsx数据,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • Linux环境下MySQL-python安装过程分享

    Linux环境下MySQL-python安装过程分享

    这篇文章主要介绍了Linux环境下MySQL-python安装过程分享,本文使用的编译方式安装,需要的朋友可以参考下
    2015-02-02
  • Pandas中迭代DataFrame行的方法总结

    Pandas中迭代DataFrame行的方法总结

    Python是进行数据分析的一种很好的语言,主要是因为以数据为中心的Python包的奇妙生态系统,本文主要为大家介绍了如何在Pandas中迭代DataFrame中的行,有需要的可以参考下
    2023-09-09
  • python list 切片倒着取的实现示例

    python list 切片倒着取的实现示例

    切片操作非常灵活,可以按照需要获取列表中的任意一段元素,本文主要介绍了python list 切片倒着取的实现示例,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • python实现复制文件到指定目录

    python实现复制文件到指定目录

    这篇文章主要为大家详细介绍了python实现复制文件到指定的目录下,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • Python类的定义和使用详情

    Python类的定义和使用详情

    这篇文章主要介绍了Python类的定义和使用详情,在Python中,类表示具有相同属性和方法的对象的集合,文章围绕主题相关资料展开更多的相关介绍,需要的小伙伴可以参考一下
    2022-06-06
  • Python可变对象与不可变对象原理解析

    Python可变对象与不可变对象原理解析

    这篇文章主要介绍了Python可变对象与不可变对象原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • Python实现前端样式尺寸单位转换

    Python实现前端样式尺寸单位转换

    在 Web 前端项目开发时,样式尺寸都是以 rpx 为单位,可是 UI 设计师在看完开发后的 UI ,却要求都以 px 为单位,所以本文就和大家分享一个利用Python就能实现尺寸单位转换的方法吧
    2023-06-06
  • 详解Python中httptools模块的使用

    详解Python中httptools模块的使用

    httptools 是一个 HTTP 解析器,它首先提供了一个 parse_url 函数,用来解析 URL。这篇文章就来和大家聊聊它的用法吧,感兴趣的可以了解一下
    2023-03-03

最新评论