我一直试图在本地运行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
答案 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.
子域的内容。