python - Django:有没有办法知道 url 在应用程序中是否有效?

标签 python django

这是我的目标:

  • 用户想要登录
  • 我在每个页面上创建一个按钮,并将 urlback 作为参数,例如,如果我们在页面 http://olivier.life/today 上,登录按钮将有一个 url像 http://olivier.life/login?back=today
  • 用户登录
  • 一旦用户登录,我检查“GET”请求中是否有“back”。如果是这样,那么我将重定向到 GET
  • 中的 url

我的问题是安全问题:我只想知道 GET 中的 URL 是否是我的应用程序的一部分(对 urls.py文件)。

如何做到这一点?

最佳答案

使用resolve .文档中有一个非常接近此用例的示例。我认为对于您的情况,您需要类似的东西:

def some_view(request):
    redirect_target = request.GET.get('back')
    if redirect_target:
        try:
            resolve_match = django.core.urlresolvers.resolve(redirect_target)
        except django.core.urlresolvers.Resolver404:
            # do something on bad input
        else:
            return django.shortcuts.redirect(redirect_target)
    else:
        # empty string redirect target, or not provided at all
        # do something else

关于python - Django:有没有办法知道 url 在应用程序中是否有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32705698/

相关文章:

python - 为什么 Tensorflow 中二元分类头的 logit_dimension=1 ?

python - 如何将 <0;99> 范围内的数字映射到 <-1.0;1.0> 范围内?

python - 如何隐藏 "py4j.java_gateway:Received command c on object id p0"?

python - 检测 Celery 是否可用/正在运行

django - 您如何使用 AWS Elastic Beanstalk 运行工作程序?

django - Crispy 表单抛出 VariableDoesNotExist 错误,无法在表单上查找键 [html5_required]

python - Google VM (Linux) 上的 Pytorch 无法识别 GPU

python - 乘以计数器对象的元素

django - django 的 bulk_create 是原子的吗?

django - Django日志: Change sender email address from root@localhost to something else