【问题标题】:How to treat relative path as full URL in Django?如何将相对路径视为 Django 中的完整 URL?
【发布时间】:2021-10-17 09:43:53
【问题描述】:

我正在尝试使用 Django 制作一个类似 bit.ly 的 URL 缩短应用程序。当 {var} 指向绝对 URL 但我无法弄清楚如何重定向没有“http//:www”等前缀的链接时,它可以工作。

到目前为止,我尝试了HttpResponseRedirect(link)HttpResponsePermanentRedirect(link)redirect(link)

例子:

link = "https://www.postgresql.org/docs/current/" => 按预期工作

link = "postgresql.org/docs/current/" => 重定向到“http://127.0.0.1:8000/{var}/postgresql.org/docs/current/”

在浏览器搜索选项卡中,两个链接都按预期重定向,那么如何将类似 "postgresql.org/docs/current/" 的内容视为完整 URL?我使用的函数不是基于类的视图。

【问题讨论】:

    标签: python django url redirect path


    【解决方案1】:

    最简单的方法是在重定向之前在代码中进行这样的检查:

    if not link.startswith('http//:www.'):
       link = 'http//:www.' + link
    

    【讨论】:

      猜你喜欢
      • 2013-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-29
      • 2012-04-01
      • 1970-01-01
      • 2011-05-24
      相关资源
      最近更新 更多