Django项目是只针对一个网站,还是不同的应用程序可以是不同的网站。什么是可行的和可取的?

2024-05-18 10:25:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我用django已经有一段时间了,但是有些东西我不太清楚。你知道吗

django应用程序应该有多大。例如,如果一个django应用程序只应该是用户身份验证,或者如果它应该是一个应用程序中的整个网站。你知道吗

如果我有一个有几个应用程序的项目,每个应用程序都是一个包含大量代码的完整网站,那么它是应该是这样的,还是应该在一个项目中所有与单个网站相关的应用程序都是这样的?你知道吗

我想为每个站点创建一个django项目,但我现在想知道是否应该创建一个项目,其中每个应用程序都是一个站点。有谁能对此发表评论吗?你更喜欢什么方式?你知道吗

在django文档中,一个应用程序只用于投票,因此根据文档,似乎每个应用程序都应该是站点功能的一部分。你知道吗


Tags: 项目django代码用户文档功能身份验证应用程序
2条回答

应用程序是一个项目的子模块,它包含了较大站点的特定部分的功能(视图、模型、URL等),并且尽可能地与其他应用程序分离。项目作为一个整体是网站和你的应用程序构成了你的网站功能的独立部分。你知道吗

如果您的站点基本上包含相同的功能,那么值得研究一下Sites框架,它提供了django。你知道吗

以民意测验为例。你知道吗

假设这个网站是一个调查网站。将会有polls应用程序,它将包含用于创建和记录投票结果的相关模型和视图。然后您可能需要查看数据,这样就可以创建一个analysis应用程序,它将存储用于显示仪表板的视图,并包含用于数据处理的函数。然后我们可以更进一步,让用户能够登录并查看他们自己的结果(并让我们有机会将用户链接到投票结果),因此您可以制作一个accounts应用程序,它可以保存登录/注销的视图,可能还有一个配置文件页等

因此,这些功能的不同部分将被分离成不同的应用程序,这些应用程序将构成整个项目(站点)。你知道吗

如果应用程序已正确解耦,则可以在其他项目中重用不同的应用程序(例如,accounts应用程序可以放入新项目中,但不提供登录/注销功能)

根据我目前的经验,应用程序应该是一个可重用的实体。在一个应用程序中,有很多指导原则来选择要做什么和不做什么。分离身份验证就是一个例子。projcet是5月份应用程序的一个大集合,可重用的应用程序可以出现在许多项目中。你知道吗

如今,有一种趋势是转向微服务体系结构,即下一级的功能分离,每个服务都能做最好的一件事。你知道吗

每个项目本身就是一个单元,而不是一个单独的应用程序。所以你主持的是项目,而不是应用程序。我建议为每个站点使用不同的项目,并使用微服务体系结构。很大程度上也取决于现有的代码库。你知道吗

相关问题 更多 >