gpt4 book ai didi

django - 不同的 URL 配置取决于 Django 中的域

转载 作者:行者123 更新时间:2023-12-03 21:30:30 25 4
gpt4 key购买 nike

在 Mezzanine 中,您可以使用两个不同的 URL,具体取决于您要显示的内容。有没有办法查看里面 urls.py 如果事件域在子域上还是只是“常规”域?

这是两种不同的风格:

url('^$', direct_to_template, {'template': 'index.html'}, name='home'),
url('^$', mezzanine.blog.views.blog_post_list, name='home'),

我还没有找到一个可靠的方法。如果我在子域(通配符/例如 sub.example.com)上,我想显示 blog_post_list,如果我在“主”域(例如 example.com)上,我想显示 index.html

最佳答案

不,urls.py在您的应用程序启动时加载并且只查看路径。当前 URL 是 request 的一部分中间件和 View 接收的对象。

但是,您可以根据 URL 路径使用 View 来委派请求。

url('^$', my_view, name='home')

并且 View 可以使用当前的 request对象委托(delegate)给两个后续 View 之一。
def my_view(request):
if 'something' in request.META['HTTP_HOST']:
return something_view(request)
else:
return another_view(request)

但是,有一个应用程序可以做您想做的事情, django-hosts .它允许加载不同的 urls.py基于主机的文件。
from django_hosts import patterns, host

host_patterns = patterns('path.to',
host(r'api', 'api.urls', name='api'),
host(r'beta', 'beta.urls', name='beta'),
)

关于django - 不同的 URL 配置取决于 Django 中的域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37682492/

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