django - 项目中的每个 django 应用程序都应该有自己的 urls.py 吗?

标签 django django-urls

我正在开发一个包含多个应用程序的 django 项目。每个应用程序都有自己的一组模型和 View 。

每个应用程序是否也应该使用 urls.py 或函数定义自己的 url。在 django 项目中定义应用程序的 url 并将这些 url 与主 urls.py (root url conf) 集成的最佳实践是什么?

最佳答案

这取决于。如果您使用一个应用程序处理一个小型网站,则可以将所有表达式保存在同一个 urls.py 中。

但是,当您使用真正独立的应用程序处理更复杂的站点时,我更喜欢以下结构:

  • 我的应用程序
  • admin.py
  • forms.py
  • 模型.py
  • urls.py
  • View .py
  • 管理.py
  • 设置.py
  • urls.py

  • 不要忘记每个文件夹都需要它自己的 __ init__.py
    # urls.py
    from django.conf.urls.defaults import *
    from django.contrib import admin
    
    admin.autodiscover()
    
    urlpatterns = patterns('',
        # Notice the expression does not end in $, 
        # that happens at the myapp/url.py level
        (r'^myapp/', include('myproject.myapp.urls')),
    )
    
    # myapp/urls.py
    from django.conf.urls.defaults import *
    
    urlpatterns = patterns('myproject.myapp.views',
        (r'^$', 'default_view',
        (r'^something/$', 'something_view',
    )
    

    您可能还想查看 Class-based Generic Views

    关于django - 项目中的每个 django 应用程序都应该有自己的 urls.py 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9323594/

    相关文章:

    python - 过滤 Django 查询集的字典值

    python - 在 include() 中使用命名空间时有关 app_name 的错误配置错误

    Django:urls.py 中的美元符号

    python - Django 正则表达式不匹配

    django - 如何使用 Django 获取当前的 url 名称?

    javascript - Django 和使用模态窗口

    django - 跳转到emacs中匹配的django模板标签?

    python - Django 调试工具栏 - 无法使其工作(配置不当 : The STATICFILES_DIRS . ..)

    python - 在 django 中找不到页面

    python - Django 。用户在模型下拉框中添加项目