我正在使用Django创建我的第一个真正的网站,但我仍然很难理解项目和应用程序之间的区别。例如,我的网站是一个体育新闻网站,其中包含文章,排名表和"赛程和结果"等部分。我的问题是:
8ulbf1ek1#
一个 app 指的是项目的一个子模块。它是独立的,不与项目中的其他应用程序纠缠在一起,因此,理论上,你可以把它捡起来,然后把它放到另一个项目中,而不需要任何修改。一个 app 通常有它自己的 * models.py *(实际上可能是空的)。你可以把它看作是一个独立的python模块。一个简单的项目可能只有一个app。在你的例子中,project 就是整个网站,你可以把它组织成有一个 app 用于文章,一个 app 用于排名表,还有一个 app 用于固定装置和结果,如果它们需要相互交互,它们可以通过文档完备的公共类和访问方法来完成。要记住的主要事情是“应用程序”之间的相互依赖程度。实际上,这都是一个“项目”,所以没有必要走得太远,但要记住两个应用程序是多么的相互依赖。如果你发现一个应用程序可以解决两个问题,那就把它们分成两个应用程序。如果你发现两个应用程序如此紧密地交织在一起,以至于你永远无法在没有另一个的情况下重用其中一个,那就把它们合并成一个应用程序。
jexiocij2#
让我们通过这个现实的例子来理解Django中的Project和App:假设您正在Django中构建一个在线购物网站(电子商务网站):
项目:
Django会创建一个python包,并给予它一个你提供的名字。比如我们命名它为my_shopping_site。你可以用这个命令在Django中创建一个项目
python manage.py startproject my_shopping_site
这将在您的工作目录中创建my_shopping_site目录,其结构如下所示:
my_shopping_site
my_shopping_site/ manage.py my_shopping_site/ # package __init__.py # indication of package settings.py # module 1 urls.py # module 2 wsgi.py # module 3
应用程序:
正是这些小组件共同组成了你的项目。它们是你项目的特征。在我们的例子中(购物网站),它将是:
----------------------------------------------------------- my_shopping_site Products Profile Cart -----------------------------------------------------------
你可以用这些命令来创建这些应用程序:
python manage.py startapp cart python manage.py startapp products python manage.py startapp profile
其结构如下所示:
my_shopping_site/ # project name manage.py products/ # app 1 cart/ # app 2 profile/ # app 3 my_shopping_site/
每个应用程序都关注项目中一个逻辑部分。
sz81bmfz3#
理想情况下,* 你的项目应该由应用程序组成 *。这就是为什么当使用命令行时,你创建一个项目,然后向该项目添加应用程序。Apps旨在为你的项目带来“模块化”,例如,如果你构建了一个articles app,“理想情况下”,你可以在你的体育新闻项目中使用它,并在一个新的项目中重复使用它,而这个新的项目需要对它的settings进行最小限度的修改或不进行修改--比如一个博客项目。应用程序是一个可以重复使用的软件,你的项目只代表你的特定需求。看看Django Project Structure,它可能会给予你一些组织Django项目的最佳实践的见解。在Google上也有几篇可搜索的博客文章涉及此主题:
articles app
settings
icnyk63a4#
根据Django官方文档项目与应用程序项目和应用程序之间有何区别?应用程序是执行某些操作的Web应用程序,例如,博客系统、公共记录数据库或小型投票应用程序。项目是特定网站的配置和应用程序的集合。一个项目可以包含多个应用程序。一个应用程序可以位于多个项目中。
4条答案
按热度按时间8ulbf1ek1#
一个 app 指的是项目的一个子模块。它是独立的,不与项目中的其他应用程序纠缠在一起,因此,理论上,你可以把它捡起来,然后把它放到另一个项目中,而不需要任何修改。一个 app 通常有它自己的 * models.py *(实际上可能是空的)。你可以把它看作是一个独立的python模块。一个简单的项目可能只有一个app。
在你的例子中,project 就是整个网站,你可以把它组织成有一个 app 用于文章,一个 app 用于排名表,还有一个 app 用于固定装置和结果,如果它们需要相互交互,它们可以通过文档完备的公共类和访问方法来完成。
要记住的主要事情是“应用程序”之间的相互依赖程度。实际上,这都是一个“项目”,所以没有必要走得太远,但要记住两个应用程序是多么的相互依赖。如果你发现一个应用程序可以解决两个问题,那就把它们分成两个应用程序。如果你发现两个应用程序如此紧密地交织在一起,以至于你永远无法在没有另一个的情况下重用其中一个,那就把它们合并成一个应用程序。
jexiocij2#
让我们通过这个现实的例子来理解Django中的Project和App:
假设您正在Django中构建一个在线购物网站(电子商务网站):
项目:
Django会创建一个python包,并给予它一个你提供的名字。比如我们命名它为my_shopping_site。
你可以用这个命令在Django中创建一个项目
这将在您的工作目录中创建
my_shopping_site
目录,其结构如下所示:应用程序:
正是这些小组件共同组成了你的项目。它们是你项目的特征。在我们的例子中(购物网站),它将是:
你可以用这些命令来创建这些应用程序:
其结构如下所示:
每个应用程序都关注项目中一个逻辑部分。
sz81bmfz3#
理想情况下,* 你的项目应该由应用程序组成 *。这就是为什么当使用命令行时,你创建一个项目,然后向该项目添加应用程序。
Apps旨在为你的项目带来“模块化”,例如,如果你构建了一个
articles app
,“理想情况下”,你可以在你的体育新闻项目中使用它,并在一个新的项目中重复使用它,而这个新的项目需要对它的settings
进行最小限度的修改或不进行修改--比如一个博客项目。应用程序是一个可以重复使用的软件,你的项目只代表你的特定需求。
看看Django Project Structure,它可能会给予你一些组织Django项目的最佳实践的见解。
在Google上也有几篇可搜索的博客文章涉及此主题:
icnyk63a4#
根据Django官方文档
项目与应用程序
项目和应用程序之间有何区别?应用程序是执行某些操作的Web应用程序,例如,博客系统、公共记录数据库或小型投票应用程序。项目是特定网站的配置和应用程序的集合。一个项目可以包含多个应用程序。一个应用程序可以位于多个项目中。