Django的动态和静态主机解析。将主机名映射到urlconfs。
django-hosts的Python项目详细描述
此django应用程序将特定主机的请求路由到不同的url方案 在称为“hostconfs”的模块中定义。
例如,如果您拥有example.com,但希望提供特定内容 在api.example.com和beta.example.com处,将以下内容添加到 hosts.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'), )
这将导致请求{api,beta}.example.com被路由到 对应的urlconf。您可以使用urls.py作为这些 人质会议。
模式是按顺序计算的。如果没有匹配的模式,则请求是 以通常的方式处理,即使用标准的ROOT_URLCONF。
左边的模式是正则表达式。例如, 下列ROOT_HOSTCONF设置将路由foo.example.com 和bar.example.com到同一个urlconf。
from django_hosts import patterns, host host_patterns = patterns('', host(r'(foo|bar)', 'path.to.urls', name='foo-or-bar'), )
安装
首先,使用您喜爱的软件包管理器安装应用程序,例如:
pip install django-hosts
或者,使用repository on Github。
您可以在这里找到完整的文档:django-hosts.rtfd.org
然后将您的django站点配置为使用应用程序:
将'django_hosts'添加到INSTALLED_APPS设置中。
将'django_hosts.middleware.HostsRequestMiddleware'添加到开头 MIDDLEWARE或MIDDLEWARE_CLASSES设置。
将'django_hosts.middleware.HostsResponseMiddleware'添加到 MIDDLEWARE或MIDDLEWARE_CLASSES设置。
创建一个包含默认主机模式的新模块, 例如,在您的urls.py旁边的hosts.py文件中。
将ROOT_HOSTCONF设置设置为点式python 包含主机模式的模块的导入路径,例如:
ROOT_HOSTCONF = 'mysite.hosts'
将DEFAULT_HOST设置设置为您的主机模式的名称。 希望引用为默认模式。如果没有其他人会用的 模式匹配或不给host_url模板命名 标签。