Python django项目只适用于单个网站,或者不同的应用程序可以是不同的网站。什么是可行的和可取的?

Python django项目只适用于单个网站,或者不同的应用程序可以是不同的网站。什么是可行的和可取的?,python,django,Python,Django,我已经使用django有一段时间了,但是有一点我不是很清楚 django应用程序应该有多大。例如,如果django应用程序应该只进行用户身份验证,或者它应该是一个应用程序中的整个网站 如果我有一个包含多个应用程序的项目,而每个应用程序都是一个包含大量代码的完整网站,那么它应该是这样的吗?还是所有与项目中单个站点相关的应用程序都应该是这样的 我想为每个站点创建一个django项目,但我现在想知道是否应该创建一个项目,其中每个应用程序都是一个站点。有人能对此发表评论吗?首选的方式是什么 在djang

我已经使用django有一段时间了,但是有一点我不是很清楚

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

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

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


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

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

如果您的站点将基本上包含相同的功能,那么可能值得研究
django
提供的
sites
框架

以民意调查为例

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

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


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

根据我目前的经验,应用程序应该是一个可重用的实体。在应用程序中,有许多指导原则可供选择要使用的内容和不使用的内容。分离身份验证就是一个例子。项目集是五月应用程序的一个大集合,可重用的应用程序可以在许多项目中使用

如今,有一种趋势是转向微服务体系结构,这是功能分离的下一个层次,每个服务只做一件最好的事情


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

你的网站像某种产品吗?一个网站可以是股票市场应用程序,另一个可以是不同类型的应用程序,如社交媒体应用程序或交通应用程序。谢谢,这就解释了我需要知道的。因此,不同的应用程序实际上只是网站的不同功能。然后我将需要使用不同的项目,因为网站是非常不同的。这是一套不同用途的网站。很高兴你发现它很有用!是的,在这种情况下,每个站点将是一个不同的项目:)“应用程序应该是一个可重用的实体”=>不,它应该只是站点的一个特定子部分。它根本不必是可重用的。此外,你提到的微服务与这个问题无关,你关于使用这种架构的建议纯粹是基于观点的。我的意思是,它应该这样设计。我不是说一个应用程序是或必须是一个可重用的实体,而是说它应该是。