Как получить имя хоста или 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 
  • Проблема с различием между двумя одинаковыми элементами в меню tkinter
  • Где находится NoneType, расположенный в Python 3.x?
  • Следите за файлом с asyncio
  • Python: обновить список кортежей
  • Python - преобразование sock.recv в строку
  • Почему рекурсивный генератор не работает в Python 3.3?
  • Заменить всю строку в текстовом файле на основе поиска с помощью Python
  • Просмотры в Python3.1?
  • Могу ли я использовать Python 3 super () в Python 2.5.6?
  • Захват сети с помощью Selenium / PhantomJS
  • Почему изменение dict во время итерации не всегда вызывает исключение?
  • Python - лучший язык программирования в мире.