在本地运行我的工作网络应用,但无法访问正确的网站

时间:2019-05-14 13:13:27

标签: python django localhost

我一直试图在本地运行Django webapp。我所做的就是设置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来访问Web应用程序,但是那是与我更简单的Web应用程序一起使用的。

任何帮助将不胜感激!谢谢。

编辑: 我关注了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 个答案:

答案 0 :(得分:1)

为此,您只需在本地计算机上使用不同的域即可。只需编辑本地/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.子域的内容。