2016-12-18 18 views
0

我知道它感覺像初級,但我不能拿出一個乾淨的解決方案,只基於文檔。 我有以下項目結構(我省略像models.py文件,forms.py保持的問題簡潔的目的)Django網站加載空的根urls.py文件

  • 程序hello_world
    • hellow_world
      • urls.py
    • APP_2
      • urls.py
    • app_3
      • urls.py
    • manage.py
    • urls.py
    • settings.py

作爲你似乎y的目標是爲每個應用程序分別創建一個urls.py文件,然後將它們組裝到根urls.py(與上面列表中的settings.py相同級別)。問題是我的root urls.py現在是EMPTY(!!!),並且該網站仍然加載主頁!我究竟做錯了什麼 ??? 請參見下面的詳細信息:

settings.py:

ROOT_URLCONF = 'urls'

hellow_world urls.py:

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

根urls.py - 空!

manage.py:

if __name__ == "__main__": 
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings") 

    from django.core.management import execute_from_command_line 

    execute_from_command_line(sys.argv) 

回答

1

使用include()包括多個URL:

# your main urls.py file 
from django.conf.urls import include, url 

urlpatterns = [ 
    url(r'^myapp1/', include('myapp1.urls')), 
    url(r'^myapp2/', include('myapp2.urls')), 
] 

和:

# myapp1/urls.py 
from django.conf.urls import url 

from . import views 

app_name = 'myapp1' 
urlpatterns = [ 
    url(r'^$', views.IndexView.as_view(), name='index'), 
    url(r'^(?P<pk>\d+)/$', views.DetailView.as_view(), name='detail'), 
    #... 
] 
+0

但你怎麼能解釋一個事實,即網站加載正確的URL與EMPTY根urls.py? –

+0

是否意味着Django總是查看與項目名稱相同的模塊(在本例中爲hellow_world),並且不需要包含它的urls.py? –

+0

您的設置模塊可能是hellow_world.settings.py - 它在manage.py中被硬編碼,請檢查它。你應該保留你的主urls.py和settings.py - 這是推薦的設置。 – Udi