gpt4 book ai didi

python - 如何制作 python 正则表达式?

转载 作者:太空宇宙 更新时间:2023-11-04 08:22:15 26 4
gpt4 key购买 nike

我正在为 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):
...

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

关于python - 如何制作 python 正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3263819/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com