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

本文涉及的产品
云原生网关 MSE Higress,422元/月
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: Python编程:Django中间件实现登陆验证

Django请求处理图

20190118112856475.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+中间件+登陆验证

相关文章
|
存储 安全 网络协议
Python 教程之 Django(9)对模型中的字段进行验证
Python 教程之 Django(9)对模型中的字段进行验证
145 0
Python 教程之 Django(9)对模型中的字段进行验证
|
网络协议 网络安全 数据库
python验证公网ip与内网ip
python验证公网ip与内网ip
300 0
|
6月前
|
数据采集 机器学习/深度学习 Web App开发
Python爬虫如何应对贝壳网的IP封禁与人机验证?
Python爬虫如何应对贝壳网的IP封禁与人机验证?
|
7月前
|
数据采集 存储 数据可视化
2025python实战:利用海外代理IP验证广告投放效果
本文介绍了如何利用Python结合海外代理IP技术,验证广告在不同国家的实际投放效果。通过模拟各地网络环境访问广告页面,检查内容是否与计划一致,并生成曝光报告。具体实现包括:获取高质量代理IP、使用Selenium或Playwright模拟用户行为、解析广告内容及生成可视化报告。案例显示,该方法能有效确保广告精准投放,优化策略并节省预算。
|
9月前
|
数据采集 文字识别 API
Python爬虫模拟登录并跳过二次验证
Python爬虫模拟登录并跳过二次验证
|
JSON 数据格式 Python
Python编程:利用JSON模块编程验证用户
Python编程:利用JSON模块编程验证用户
113 1
|
安全 网络安全 数据安全/隐私保护
HTTPS 请求中的证书验证详解(Python版)
HTTPS 请求中的证书验证详解(Python版)
786 0
|
Python
【Leetcode刷题Python】946. 验证栈序列
LeetCode题目“946. 验证栈序列”的Python解决方案,通过模拟栈的压入和弹出操作来验证给定的两个序列是否能通过合法的栈操作得到。
175 6
使用Python实现简易的用户登录验证功能
这篇文章将向你展示如何使用Python语言进行程序设计,实现一个简易的用户登录验证功能。 该功能允许用户输入由字母和数字任意组合而成的用户名和密码,并通过while循环不断地提示用户输入,直到凭证正确为止。所有凭证信息将被存储在一个字典中,以便进行匹配验证。
|
机器学习/深度学习 Python
使用Python实现交叉验证与模型评估
使用Python实现交叉验证与模型评估
495 2

热门文章

最新文章

推荐镜像

更多