我的 Django 应用程序应该有多少个单独的应用程序

Posted

技术标签:

【中文标题】我的 Django 应用程序应该有多少个单独的应用程序【英文标题】:How many separate apps should I have with my Django app 【发布时间】:2021-12-19 05:11:42 【问题描述】:

我的 Django 项目中应该有多少个应用程序。例如,我正在构建一个宠物应用程序,其中可以有主人、宠物、兽医等。

现在只坚持我提到的 3 个,我应该在我的 Django 项目中将它们作为单独的应用程序,还是应该只创建一个应用程序来处理所有事情。随着时间的推移,我会添加更多功能。

我的想法是创建一个项目

django-admin startproject mypets

然后为每个创建一个应用程序:

python manage.py startapp pet

python manage.py startapp pet_owner

python manage.py startapp veterianarian

正如我之前提到的,我将在我的应用程序中添加其他功能,例如照片待办事项等功能。我担心我的项目会变得很大,这就是为什么我想将pet_ownerpet 分别作为他们自己的应用程序。我在想这正是我应该做的,但后来意识到当我转到mypets.urls.py 文件并且我正在考虑将一些请求转发到路径时,我很快意识到我希望我的路由始终具有mypets/

urlpatterns = [
    path('admin/', admin.site.urls),
    path('mypets/petowner/', include('petowner.urls')),
    path('mypets/pet/', include('pet.urls')),
]

但它们在某种程度上似乎是分开的,我不希望它们如此。例如。我关心拥有mypets/petowner/<petowner-id>/pets/ 等。它们将彼此密切相关,我将在我的模型中使用关系。我想要的分离主要是为了组织和可读性。我不希望有一个包含大量代码的文件models.py - 我认为这既丑陋又混乱。

我计划将来在我的前端使用React,但是因为我正在努力学习 Django,所以我将坚持使用完整的 Django 应用程序并使用 Django 模板。不确定这是否重要,但我想我会提到它以防万一。

【问题讨论】:

【参考方案1】:

这是个好主意,可以让项目更有条理,特别适合您 如果你想在未来开发你的代码,这对你很有用 如果您的网址有问题,现在我有一个建议,您可以在您的应用程序中创建一个类似url.py 的文件,其中包含您的应用程序网址,然后您可以返回主网址并将其提供给网址,您似乎知道这种方式

    首先运行您的应用并制作它 现在可以在应用程序文件夹中创建一个类似urls.py 的文件 现在您可以编写您的网址并在您所知道的 urlpattern 中写入您的网址 在完成之前,请确保在主 url.py 中您必须包含其他制作的网址
    urlpatterns = [
       path('', include('petowner.urls')),
       path('admin/', admin.site.urls),
    ]

如果涉及到你太多,也许这对更改你的名字很有好处,并在那个应用程序中写下你的网址,这样你可以更有条理,并在你的 app/urls.py 中提供你的前缀或任何东西

【讨论】:

感谢您的回复。我想知道是否因为pet_ownerpet 密切相关并且没有另一个就都不存在,pet_owner 可以但没有pet 做不了多少,然后我扩展我的应用程序以包括veterinary hospitals,@ 987654331@,appointments,等等。我认为这就像它自己的应用程序一样独立。所以也许像pets 这样的东西可以是一个应用程序,local_hospitals 可以是另一个应用程序等等。所以我不会把所有东西都分开,而是分开那些真正与其他东西没有任何关系的应用程序。但我当然会将这些连接起来一起工作。 欢迎您,我希望这个回复对您有所帮助,我完全同意应用程序您可以做到可读性更高,一切都安全且花花公子。

以上是关于我的 Django 应用程序应该有多少个单独的应用程序的主要内容,如果未能解决你的问题,请参考以下文章

我应该在我的 C# 应用程序中使用多少个 DataTable 对象?

每个视图都有单独的knockout js文件

我应该对我的所有应用程序运行 Django“makemigrations”吗?

如何将模型从一个 django 应用程序迁移到一个新应用程序中?

关于 Facebook 应用程序 ID 和应用程序密码以及我在多少个单独的“应用程序”上使用相同的应用程序 ID/密码,是不是存在任何数量问题?

跨应用程序使用 django 模型?