Запуск моего рабочего веб-приложения локально, но не могу получить доступ к нужному сайту - PullRequest
1 голос
/ 14 мая 2019

Я пытался запустить веб-приложение Django на локальном компьютере. Я установил debug = True и, в основном, перенес файл settings.py с моего тестового сервера. Я наконец получил мой python manage.py runserver [::]:8000, чтобы работать без ошибок. Проблема, с которой я сейчас сталкиваюсь, заключается в том, что я не могу получить правильную идею.

Извините за неправильные условия, но предположим, что мое заявление находится по трем ссылкам: www.webapp.com, www.buying.webapp.com и www.selling.webapp.com, где SITE_ID - 1,2,3. Я научился использовать localhost: 8000 для доступа к веб-приложениям раньше, но это было с моими более простыми веб-приложениями.

Любая помощь будет оценена! Спасибо.

EDIT: Я последовал за DOMAINS_URLCONF и нашел это

class SubdomainMiddleware:
    """ Make the subdomain publicly available to classes """

    def process_request(self, request):
        domain_parts = request.get_host().split('.')
        if (len(domain_parts) > 2):
            subdomain = domain_parts[0]
            if (subdomain.lower() == 'www'):
                subdomain = None
            domain = '.'.join(domain_parts[1:])
        else:
            subdomain = None
            domain = request.get_host()
#         if subdomain in settings.DOMAINS_URLCONF:
#             request.__setattr__('urlconf',settings.DOMAINS_URLCONF[subdomain])
        try:
            current_site = Site.objects.get(domain=request.get_host())
        except Site.DoesNotExist:
            current_site = Site.objects.get(id=settings.SITE_ID)

        request.current_site = current_site
        #settings.SITE_ID = current_site.id
        request.subdomain = subdomain
        request.domain = domain

1 Ответ

1 голос
/ 14 мая 2019

Чтобы это работало, вам просто нужны разные домены на вашем локальном компьютере.Это может быть просто достигнуто путем редактирования вашего локального файла /etc/hosts (в Windows это C:\Windows\System32\drivers\etc\hosts).Просто добавьте в него следующую строку:

127.0.0.1     buying.x.localhost selling.x.localhost

Обновление:

После просмотра кода промежуточного программного обеспечения есть еще одно предостережение: локальные домены для покупки и продажи должны состоять как минимум из 3 частей.Я только что добавил .x в середине доменов выше, так что это промежуточное ПО должно корректно анализироваться.Вы можете структурировать эти URL по своему желанию, но они должны состоять как минимум из 3 частей, а первая часть должна соответствовать одному из поддоменов вашего проекта.

После этого, если вы наберете просто localhost:8000в адресной строке вашего браузера вы должны увидеть главную страницу, введя buying.x.localhost:8000, вы увидите содержимое субдомена buying., а введя selling.x.localhost:8000, вы увидите содержимое субдомена selling..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...