django-subdomains配置localhost

时间:2016-09-02 14:15:32

标签: python django

我无法正确配置我的。

为网站启用网站域名" SITE_ID = 1" (db object 1 domain)也设置了#34; mysite.app"

我已将这些子域设置为

ROOT_URLCONF = 'mysite.urls'
SUBDOMAIN_URLCONFS = {
    None: 'frontend.urls',  # no subdomain, e.g. ``example.com``
    'www': 'frontend.urls',
    'api': 'api.urls',
}

etc / hosts文件

127.0.0.1       api.mysite.app
127.0.0.1       www.mysite.app
127.0.0.1       mysite.app

API / urls.py

from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^$', views.index),
]

API / views.py

from django.shortcuts import render
from django.http import HttpResponse

def index(request):
    return HttpResponse('API')

前端应用网址和视图相同,除了返回字符串" FRONTEND"在HttpResponse对象中。

我可以告诉django-subdomains正在工作,因为它确实去了" frontend"当我点击" mysite.app:8000" vs root.url_conf中看到的mysite.urls。它会显示" FRONTEND"

但无论我做什么,我都无法获得#34; api.mysite.app:8000"点击api urls文件显示" API"

我错过了什么吗?我对django很新。任何帮助表示赞赏。

感谢。

2 个答案:

答案 0 :(得分:1)

只需重新启动开发服务器即可。全部配置正确。

答案 1 :(得分:0)

尝试使用运行在127.0.0.1:8000的开发服务器http://api.127.0.0.1.xip.io:8000/。由于127.0.0.1实际上不是域而是IP,因此它不具有子域。由于您的主机文件重定向到127.0.0.1而不是127.0.0.1.xip.io或类似的(您也不必进行测试)您无法连接。
我没有使用你提到的图书馆,但是根据子域名的自编片段经验,我说这是事实。