Python编程:Django中间件实现登陆验证

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: Python编程:Django中间件实现登陆验证

Django请求处理图

image.png


当然可以使用装饰器,不过不利于维护,还是妥妥的使用中间件

设置 setting.py

MIDDLEWARE = [
    'mymiddlewares.AccessAuthMiddleWare',
]
# 放行url,不进行登录验证
EXCLUDE_URL = [
    "/login"
]
# 用户名密码
USERS = [
    ("username", "password")
]

自定义 mymiddleware.py

import re
from django.shortcuts import redirect
from django.utils.deprecation import MiddlewareMixin
from settings import EXCLUDE_URL, USERS
exclued_path = [re.compile(item) for item in EXCLUDE_URL]
class AccessAuthMiddleWare(MiddlewareMixin):
    """
    访问控制
    """
    def process_request(self, request):
        # 放行
        url_path = request.path
        for each in exclued_path:
            if re.match(each, url_path):
                return None
        # 验证
        user = request.COOKIES.get('user')
        password = request.COOKIES.get('password')
        if (user, password) in USERS:
            return None
        else:
            return redirect('/login')

参考

Django+中间件+登陆验证

相关文章
|
1月前
|
监控 安全 应用服务中间件
python中Django入门(四)
python中Django入门(四)
31 0
|
10天前
|
安全 数据库 C++
Python Web框架比较:Django vs Flask vs Pyramid
【4月更文挑战第9天】本文对比了Python三大Web框架Django、Flask和Pyramid。Django功能全面,适合快速开发,但学习曲线较陡;Flask轻量灵活,易于入门,但默认配置简单,需自行添加功能;Pyramid兼顾灵活性和可扩展性,适合不同规模项目,但社区及资源相对较少。选择框架应考虑项目需求和开发者偏好。
|
2天前
|
Python
基于Django的Python应用—学习笔记—功能完善
基于Django的Python应用—学习笔记—功能完善
|
17天前
|
前端开发 测试技术 数据库
【python】为什么使用python Django开发网站这么火?
【python】为什么使用python Django开发网站这么火?
|
1月前
|
中间件 数据安全/隐私保护 Python
python中Django入门(三)
python中Django入门(三)
17 0
|
1月前
|
前端开发 JavaScript Shell
python中Django入门(二)
python中Django入门(二)
13 0
|
1月前
|
SQL Shell 数据库
python中Django入门(一)
python中Django入门(一)
28 0
|
3月前
|
开发框架 开发者 Python
深入探究Python Web开发框架:Flask与Django
Python作为一种广泛应用于Web开发的编程语言,其拥有众多优秀的Web开发框架。本文将深入探讨其中两大知名框架——Flask与Django。通过对它们的概念与实践进行比较分析,帮助读者更好地理解和选择适合自己项目需求的Web开发框架。
|
4月前
|
开发框架 前端开发 JavaScript
Python 有哪些Web框架?比如Flask、Django等知识梳理
Python 有哪些Web框架?比如Flask、Django等知识梳理
|
关系型数据库 MySQL 定位技术
Python web框架 之Django + Python3.7 + 集成百度地图【视频讲解】
python集成百度地图 介绍 python集成百度地图demo
441 0
Python web框架 之Django + Python3.7 + 集成百度地图【视频讲解】