Как получить имя хоста или IP-адрес в settings.py, чтобы я мог использовать его, чтобы определить, какие URL-адреса приложения использовать

Я делаю приложение django, где у него будет 2 приложения. Когда вы откроете сайт www.webName.co.id, он будет использовать urls.py из приложения A, но когда вы откроете webName.co.uk, он будет использовать urls.py из приложения B

Это urls.py из основного проекта:

urlpatterns = [ url(r'^tinymce/', include('tinymce.urls')), url(r'^filer/', include('filer.urls')), url(r'^ckeditor/', include('ckeditor_uploader.urls')), url(r'^admin/', admin.site.urls), ] 

Я планировал добавить что-то вроде этого в этот файл:

 if settings.CURRENT_HOST_IP == 'www.webname.co.id': urlpatterns += url(r'^', include('webname_id.urls')), else: urlpatterns += url(r'^', include('webname_uk.urls')), 

Таким образом, он будет просто использовать URL-адреса из приложения, которое используется, в зависимости от текущего www, с которого вы входите на сайт.

Таким образом, мой проект имеет 1 бэкэнд-админ, но несколько интерфейсных шаблонов и URL-адресов. Проблема в том, что я не могу понять, как установить CURRENT_HOST_IP в settings.py,

Обычно я использую это для получения текущего IP / хоста, который использует пользователь:

  request.META['HTTP_HOST'] 

Но я не могу получить доступ к объекту запроса в настройках, есть ли способ в Python (а не django) получить адрес www / IP / hostname, который я набрал в браузере?

One Solution collect form web for “Как получить имя хоста или IP-адрес в settings.py, чтобы я мог использовать его, чтобы определить, какие URL-адреса приложения использовать”

Вам нужно два альтернативных файла urlconf в вашем основном проекте:

 # project/project/urls_id.py from django.conf.urls import url from urls import urlpatterns urlpatterns.append(url(r'^', include 'webname_id.urls')) 
 # project/project/urls_uk.py from django.conf.urls import url from urls import urlpatterns urlpatterns.append(url(r'^', include 'webname_uk.urls')) 

В своем промежуточном программном обеспечении выберите соответствующий urlconf на основе хоста.

 class YourMiddleware(object): # For Django 1.10+ def __init__(self, get_response): self.get_response = get_response def __call__(self, request): if request.get_host() == 'www.webname.co.id': request.urlconf = 'project.urls_id' else: request.urlconf = 'project.urls_uk' response = self.get_response(request) return response 
  • Извлечение заголовка из HTML не работает
  • Есть ли причины не смешивать модуль Multiprocessing и Threading в Python
  • Новый проект: Python 2 или Python 3?
  • Django Rest Framework ListField и DictField
  • Python 3.1.3 открыть файл mbox, действительно медленный по сравнению с python 2.x?
  • Может ли простая разница в именах переменных Python3 изменять способ запуска кода?
  • Нити многопроцессорности Python никогда не присоединяются при большом объеме работы
  • Как распараллеливать загрузки файлов?
  •  
    Interesting Posts for Van-Lav
    Python - лучший язык программирования в мире.