pip install django-hosts |
INSTALLED_APPS = [ ... 'django_hosts', ... ] |
MIDDLEWARE = [ 'django_hosts.middleware.HostsRequestMiddleware', # 头尾都要加 ... 'django_hosts.middleware.HostsResponseMiddleware', ] |
ROOT_HOSTCONF = 'project_name.hosts' # 模块的路径,不是域名 DEFAULT_HOST = 'www' # Name of the default host, we will create it in the next steps |
project_name/ |-- __init__.py |-- hosts.py # `ROOT_HOSTCONF` 指向这个文件 |-- settings.py |-- urls.py +-- wsgi.py |
from django.conf import settings from django_hosts import patterns, host host_patterns = patterns('', host('www', settings.ROOT_URLCONF, name='www'), # `name`与`DEFAULT_HOST` 相同 host('app01', 'app01.urls', name='app01'), host('app02', 'app02.urls', name='app02'), ) |
from django.shortcuts import render from django_hosts.resolvers import reverse def homepage(request): homepage_url = reverse('homepage', host='www') # host可以不传,将会使用 DEFAULT_HOST user_list_url= reverse('user_list', host='app01') return render(request, 'homepage.html', {'homepage_url': homepage_url}) |
{% load hosts %} <a href="{% host_url 'home' host 'www' %}" rel="external nofollow" >Homepage</a> <a href="{% host_url 'articles' host 'help' %}" rel="external nofollow" >Help Articles</a> |