Skip to main content
 首页 » 编程设计

python之如何制作 python 正则表达式

2025年05月04日32kuangbin

我正在为 Django 开发一个 loginMiddleware 类。这个中间件类必须在未登录时将用户发送到登录页面。但也有一些异常(exception)。

因为我运行内置的 django 服务器,所以我必须制作一个媒体 url。但问题是,当登录页面加载 javascript 文件时,javascript 文件就是登录页面,因为用户没有登录。出于这个原因,我发表了声明:

from django.http import HttpResponseRedirect 
from django.conf import settings 
import re 
class loginMiddelware: 
    def process_request(self,request): 
        if request.path != settings.LOGIN_PATH and request.user.is_anonymous(): 
            if request.path.find('media') <= 0: 
                return HttpResponseRedirect(settings.LOGIN_PATH) 
            else: 
                return None 

我的意思是:if request.path.find('media') <= 0:.它有效,但我认为这不是一个好方法。我认为我必须为此使用正则表达式。所以我查看了 re.match 函数,并尝试了不同的想法,但没有任何效果。我想要一个正则表达式,它只允许以/media/开头并以下一个扩展之一结尾的所有 url:js、css、png、gif 或 jpg。

这怎么可能?

谢谢!

汤姆

请您参考如下方法:

当然:

DIRECT_ACCESS = re.compile(r'^/media/.*\.(js|css|png|gif|jpg)$') 
 
... 
 
if DIRECT_ACCESS.match(url): 
    ... 

提示:如果您想确保您的正则表达式有效,请编写几个单元测试来执行它。这样,您就不会遇到任何令人讨厌的意外。