服务电话:13693293278

客服咨询QQ:470942293

 
网站首页
公司介绍
付款方式
联系我们
Logo说明
合作伙伴
企业型网站建设
商务型网站建设
Flash型网站建设
定制型网站建设
OA系统开发
ERP系统开发
MIS系统开发
MES系统开发
移动开发Android
移动开发iOS
微信二次开发
网站维护
建站流程
功能模块
程序语言
静态生成
域名选择
网站上传
网站备案
网站维护
最新动态
行业资讯
Python
ThinkPHP
jQuery
PHP
Div+CSS
MySQL
Oracle

技术文章

Python
ThinkPHP
jQuery
PHP
Div+CSS
MySQL
Oracle

北京海思通科技有限责任公司
联系:01082462897
业务:haisitong@163.com
技术:470942293@qq.com
网址:http://www.haisitong.net/
QQ: 2223793800 470942293

Django使用中间件实现登录验证控制

发布日期:2020-10-25 23:20:53

        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标签中去。如下图:



Copyright@(2010-2024) 北京海思通科技有限责任公司 客服邮箱:haisitong#163.com(请将#换成@)
京ICP备19051925号