【问题标题】:Django website loads with empty root urls.py fileDjango 网站加载空的根 urls.py 文件
【发布时间】:2017-05-03 14:26:22
【问题描述】:

我知道这感觉很初级,但我无法仅基于 doc 提出一个干净的解决方案。 我有以下项目结构(为了保持问题简洁,我省略了models.py、forms.py等文件)

  • hello_world
    • hellow_world
      • urls.py
    • app_2
      • urls.py
    • app_3
      • urls.py
    • manage.py
    • urls.py
    • settings.py

如您所见,我的目标是为每个应用程序创建一个单独的urls.py 文件,然后将它们组装到根urls.py 中(与上面列表中的settings.py 处于同一级别)。问题是我的根 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)

【问题讨论】:

    标签: django urlconf


    【解决方案1】:

    使用include() 包含更多网址:

    # 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'),
        #...
    ]
    

    【讨论】:

    • 但是您如何解释网站使用 EMPTY root urls.py 加载正确 url 的事实?
    • 是不是说Django总是查找与项目同名的模块(本例中为hello_world),不需要包含urls.py?跨度>
    • 您的设置模块可能是 hellow_world.settings.py - 它是硬编码在 manage.py 中的,检查一下。您应该保留您的主要 urls.py 和 settings.py - 这是推荐的设置。
    • 我在问题中添加了 manage.py 文件定义。 You should keep your main urls.py and settings.py there - this is the recommended setup. 你能澄清一下there 的意思吗?这对我来说真的很重要!
    • settings.pyurls.py 应该在mysite/mysite 中,而mysite/myapp1 应该包含views.pymodels.pyurls.py。见:docs.djangoproject.com/en/1.10/intro/tutorial01
    猜你喜欢
    • 2022-12-09
    • 1970-01-01
    • 1970-01-01
    • 2017-11-30
    • 2022-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多