Django 配置多站點(diǎn)多域名的實(shí)現(xiàn)步驟
起步
要介紹一個(gè)非常方便的 Django 擴(kuò)展包-- django-hosts 。它能夠提供在不同的子域名下訪問不同的 app。例如,在項(xiàng)目中有多個(gè)應(yīng)用 app01 、 app02 等,希望通過域名 app01.example.com 訪問該應(yīng)用。
安裝與配置
使用 pip 進(jìn)行安裝:
pip install django-hosts
把它加入到 INSTALLED_APPS 中:
INSTALLED_APPS = [ ... 'django_hosts', ... ]
在中間件 MIDDLEWARE 的 開頭和結(jié)尾 都添加 HostsResponseMiddleware :
MIDDLEWARE = [ 'django_hosts.middleware.HostsRequestMiddleware', # 頭尾都要加 ... 'django_hosts.middleware.HostsResponseMiddleware', ]
在 settings.py 添加配置變量:
ROOT_HOSTCONF = 'project_name.hosts' # 模塊的路徑,不是域名 DEFAULT_HOST = 'www' # Name of the default host, we will create it in the next steps
在settings.py同級目錄創(chuàng)建 hosts.py 文件:
project_name/ |-- __init__.py |-- hosts.py # `ROOT_HOSTCONF` 指向這個(gè)文件 |-- settings.py |-- urls.py +-- wsgi.py
hosts.py 內(nèi)容為:
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'), )
URL反向映射與模板
URL 反向映射需要額外一個(gè)參數(shù)作為 主機(jī) :
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>
總結(jié)
另外,由于域名不同,它們之間存在跨域問題,認(rèn)證信息并不共享。更多可以查看官方文檔:https://django-hosts.readthedocs.io/en/latest/
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python np.arange 步長0.1的問題需要特別注意
這篇文章主要介紹了python np.arange 步長0.1的問題需要特別注意,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05Python實(shí)現(xiàn)字典按照value進(jìn)行排序的方法分析
這篇文章主要介紹了Python實(shí)現(xiàn)字典按照value進(jìn)行排序的方法,結(jié)合實(shí)例形式分析了Python字典按照value進(jìn)行排序的相關(guān)操作技巧,需要的朋友可以參考下2017-12-12python找出因數(shù)與質(zhì)因數(shù)的方法
這篇文章主要介紹了python找出因數(shù)與質(zhì)因數(shù)的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07python實(shí)現(xiàn)AES和RSA加解密的方法
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)AES和RSA加解密的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-03-03pycharm設(shè)置當(dāng)前工作目錄的操作(working directory)
今天小編就為大家分享一篇pycharm設(shè)置當(dāng)前工作目錄的操作(working directory),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02