Python Django进阶教程(五)(session,Django用户认证)

来源:互联网 发布:windows安全性 编辑:程序博客网 时间:2024/06/08 05:48

Django版本:1.11
操作系统:Windows
Python:3.5
欢迎加入学习交流QQ群:657341423


session(会话),Django用户认证。
每个网站都cookies,会话,用户登录这些基本功能,这也是不能缺乏的功能。
现在大部分网站来说,基本上都是用session的多,原因无非就是安全性比cookies的高。
这里就侧重讲解session用法。cookies可自行网上找资料。

本文说的session(会话)和Django用户认证,简单来说,两者都是属于用户管理的部分。如果在实际开发中,要自行建立用户模块的,那么 session就会用到,如果直接使用django的用户认证模块,那么很多现有功能都是可以直接使用的。


session做一个简单登录功能。
先看urls.py
这里写图片描述

Form.py。这个可以根据实际使用,也可不用。
这里写图片描述

models.py
这里用之前的章节的数据库,name作为username,address作为password。
这里写图片描述

login.html
这里写图片描述

index.html
这里写图片描述

最后看views.py
这里定义三个def,分别login,index和logout。
先看import
这里写图片描述

login
这里写图片描述

index和logout
这里写图片描述

设计思路:
如果输入/index/的url,会根据session检查是否已存在,如果没有的话,会跳到登录界面。
登录界面,会根据用户输入的帐号密码,从数据库的数据匹配,符合的话跳到index,否则会停留在login界面。

扩展思路:
如果在平常的网站开发过程中,会有很多网页需要进行用户验证登录才能访问该网址的时候,我们可以在views.py里面的def使用装饰器进行登录验证。

在上述例子中,进行扩充。
其余部分不变,在views.py里面添加一个装饰器。
代码如下:
这里写图片描述
这部分代码与index的def很相似。

再看def index
这里写图片描述

同样,logout也可以这样设置
这里写图片描述

这样就可以实现允许登陆的用户访问。

session一些小设置:
如果做到关闭网页,自动退出用户登录,或者网页停止访问后,用户自动退出,可以在setting.py设置这个
这里写图片描述


Django用户认证
Django用户认证功能基本上可以满足大部分网站的需求的。
我们用Django用户认证功能实现上述功能。
先看urls.py
为了区别,对上面的代码做了部分修改
这里写图片描述

Form.py新增一个类,这个主要用于后面新增用户的。
这里写图片描述

views.py
这里写图片描述
这里写图片描述
这里写图片描述
这里用到django的auth的login和logout,所以上述定义的logout和login要修改,不然会冲突。

说明:这里都是用表单生成html,然后用django的auth,上述用的是自定义的数据库。两者都是同一个models,只是对应不同的数据表,而且认证系统会有现成的方法,例如只允许登陆的用户访问。

扩充:
用户新增,通常网站都有新用户注册的功能的,如果用到django的认证系统。那么新增用户教程如下:
Form.py可以看上述的截图。
urls.py是url(r'^adduser/$', views.adduser),
这里写图片描述
其实用到from django.contrib.auth.models import User 这个即可。这也不是很复杂的问题。

修改密码:
这里写图片描述


总结:总的来说,用户管理,用户登录这模块功能,可以根据实际需求进行自定义开发或者使用django的即可。两者区别就是,用得数据表不一样,django的会有比较齐全的方法可以直接使用。


进阶教程代码:请点击

原创粉丝点击