python - Django:暂时将所有 URL 重定向到一个 View

标签 python django redirect

我正在构建网站,我认为如果有某种维护页面我可以在需要时重定向用户,这会很好。

如何开始将所有请求重定向到一个特定 View ?我正在使用 Constance在我的管理 View 中设置维护开关(只是一个 bool 值)。它的值(value)随后在整个项目中可用。

我已经准备了另一个 urlpatterns 列表,但无法弄清楚如何动态更改它们以使重定向有效。

maintenance_urlpatterns = [
    url(r'^$', views.maintenance, name='maintenance'),
]

这是来自应用程序的 urls.py 文件,而不是我要单独留下的项目文件。

我也考虑过修改 base.html 模板并以这种方式呈现“维护页面”,但我认为这是非常糟糕的解决方案。

编辑:澄清。我的主要问题不是如何编写将捕获所有流量的 urlpattern,而是如何动态编辑这些以响应 Constance 配置更改。所以我可以在管理员中切换它。

最佳答案

您问题中的正则表达式只会匹配 /(您网站的根目录)。如果您想捕获所有内容,只需使用 ^ 即可。每个 URL 都有一个开头,因此 ^ 始终匹配。

url(r'^', views.maintenance, name='maintenance')

当然,这取决于您的正常 urlpatterns 以某种方式被禁用。听起来您可能已经了解了这一点。

关于python - Django:暂时将所有 URL 重定向到一个 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44102299/

相关文章:

python - 如何在 Linux 上使用 venv 设置 Django 环境变量?

python - Django 模型 sqlmigrate - 参数太少

python - 如何区分 django 模板中的列表和字符串

python - 如果在 Python 中为 None,是否有返回默认值的简写?

python - Django - 在基于类的 View 上使用 reverse()

Laravel 重定向为 POST

security - 当已通过身份验证的用户访问登录页面时如何重定向到另一个页面

linux - 在目录中查找文件,使用 execdir 执行命令并重定向

Python3 : sorting a list of dictionary keys

python - 将 Matplotlib 绘图图像保存到 Django 模型中