北京海思通科技有限责任公司
业务:haisitong@163.com
技术:470942293@qq.com
网址:http://www.haisitong.net/
QQ: 2223793800 470942293
Web开发,网站后台开发的每个页面需要做登录验证,即:后台每个页面都是登录后可以访问。在django开发过程中,其实就是验证对应views中的方法需要做登录验证。
比如后台,在修改当前用户口令的方法中,有登录验证的基础代码。后台每个方法都需要登录验证,那么后台的每个方法中都需要这个登录验证代码,这样一来就显得代码有些冗余,而且不利于维护。
Django使用中间件Middleware功能就可以完美解决这个繁琐的问题,最终实现一次编写,多个方法自动调用,当然也利于维护。
Django中间件代码会首先执行,在整个项目中,调用任意方法代码,都会首先执行中间件代码,接下来先给出中间件的使用方法。
(1)创建中间件(package)
创建中间件,其实就是创建一个python package,如下图:
然后命名为:middleware(可以自定义为其他任意名字),如下图:
(2)编写中间件代码
然后在middleware中创建一个python文件:UserAuth.py(可以自定义为其他任意名字,建议首字母大写),UserAuth.py中的代码如下:
其中class的名字AuthMiddleWare可以自定义为其他任意名字,但是其中的方法名为:process_request不能自定义。
代码中的/hst_admin/login、/hst_admin/login_action路径就是不限制登录验证(return None就直接结束方法的执行),如果是其他路径,都会执行下面的登录验证代码,没有登录就首先强制到login登录页面。
(3)在配置settings文件中配置中间件
打开项目配置文件,增加中间件配置:hst_admin.middleware.UserAuth.AuthMiddleWare 即可。
其实就是把AuthMiddleWare这个类的包含完整路径添加到配置的MIDDLEWARE标签中去。如下图: