Django中URL架构设计的最佳做法

时间:2020-07-14 08:29:02

标签: python django design-patterns django-urls

一段时间以来,我一直在使用Django设计网站,并且还设计了各种网站。 但是在任何新项目开始时都会想到一个问题:

什么是同时创建两者的最佳URLs建筑设计逻辑和有意义的网址路径以及可插入应用

典型示例和问题

我将通过一个实际的例子来解释我的问题。假设我们的项目具有以下功能:

  1. 它具有三个应用程序,分别为ShopBlogSupport

  2. 它有三个URL部分:

    2.1。公开部分:以/开头。

    2.2。消费者小组:以/panel开头。

    2.3。管理员面板:以/administrator开头。

  3. 每个应用程序都有3个视图。例如Shop具有:public_shop_viewpanel_shop_viewadministrator_shop_view

现在,此项目的最佳URL设计是什么?这个问题的常见解决方案:

解决方案:

project/urls.py
    path('', include('Shop.urls', namespce='Shop')),
    path('', include('Blog.urls', namespce='Blog')),
    path('', include('Support.urls', namespce='Support')),
Shop/urls.py
    path('shop/', views.public_shop_view, name='public_shop_view'),
    path('panel/shop/', views.panel_shop_view, name='panel_shop_view'),
    path('administrator/shop/', views.administrator_shop_view, name='administrator_shop_view'),

Blog/urls.py
    path('blog/', views.public_blog_view, name='public_blog_view'),
    path('panel/blog/', views.panel_blog_view, name='panel_blog_view'),
    path('administrator/blog/', views.administrator_blog_view, name='administrator_shop_view'),

Support/urls.py
    path('support/', views.public_support_view, name='public_support_view'),
    path('panel/support/', views.panel_support_view, name='panel_support_view'),
    path('administrator/support/', views.administrator_support_view, name='administrator_support_view'),
            

现在,最佳做法是什么?还有其他解决方案吗?

1 个答案:

答案 0 :(得分:2)

完全由您自己选择方法...关键是保持我们的代码足够模块化以可重用,这可以在第一种方法中获得,因为每个应用程序都有自己的urls.Py文件,并且可以在其他应用程序中使用只需导入应用程序或模块即可实现项目。...因此,结论1可以使您的应用程序可插入...

相关问题