Django 配置多站點(diǎn)多域名的實(shí)現(xiàn)步驟
起步
要介紹一個(gè)非常方便的 Django 擴(kuò)展包-- django-hosts 。它能夠提供在不同的子域名下訪問(wèn)不同的 app。例如,在項(xiàng)目中有多個(gè)應(yīng)用 app01 、 app02 等,希望通過(guò)域名 app01.example.com 訪問(wèn)該應(yīng)用。
安裝與配置
使用 pip 進(jìn)行安裝:
pip install django-hosts
把它加入到 INSTALLED_APPS 中:
INSTALLED_APPS = [ ... 'django_hosts', ... ]
在中間件 MIDDLEWARE 的 開(kāi)頭和結(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同級(jí)目錄創(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可以不傳,將會(huì)使用 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é)
另外,由于域名不同,它們之間存在跨域問(wèn)題,認(rèn)證信息并不共享。更多可以查看官方文檔:https://django-hosts.readthedocs.io/en/latest/
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python np.arange 步長(zhǎng)0.1的問(wèn)題需要特別注意
這篇文章主要介紹了python np.arange 步長(zhǎng)0.1的問(wèn)題需要特別注意,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05深入探究Python Numba庫(kù)編譯優(yōu)化利器
這篇文章主要為大家介紹了Python Numba庫(kù)編譯優(yōu)化利器深入探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01PYQT5實(shí)現(xiàn)控制臺(tái)顯示功能的方法
今天小編大家分享一篇PYQT5實(shí)現(xiàn)控制臺(tái)顯示功能的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06Python實(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ù)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(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à)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02python2.6.6如何升級(jí)到python2.7.14
這篇文章主要為大家詳細(xì)介紹了python2.6.6如何升級(jí)到python2.7.14,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04