我正在尝试在JetBrains PyCharm IDE中创建一个新的Django / Python项目。 但是,在输入我的软件名称时,它会告诉我“您不能将您的应用程序称为与您的项目相同”。
试图完全理解Django中项目和应用程序之间的区别,我希望有人能够展示一些已知复合网站(如Facebook,Gmail和YouTube)的应用程序和项目之间的区别。
谢谢!
答案 0 :(得分:28)
我尝试使用Facebook:
facebook
users
messages
notifications
posts
...
基本上,要点是应用程序代表整个项目的特定部分。此外,应用程序可以“插入”类似的项目。为了维护,应用程序应该拥有与其他应用程序的目标不同的自己的目标。
在优秀的“Django的两个勺子”book中,作者引用詹姆斯贝内特的话:
创建和维护一个好的Django应用程序的艺术就是它 应该遵循道格拉斯所说的截断的Unix哲学 McIlroy:“编写可以完成一件事并且做得很好的程序。”
作者再次声明:
从本质上讲,每个应用都应该紧紧关注其任务。如果一个应用程序 不能用中等长度的单句来解释,或者你 需要多说'和',这可能意味着应用程序太大了 应该分手。
2014年12月19日更新:
使用Django 1.7 this description of "Projects and applications"绝对值得一读。
2009年12月21日更新:
Django 1.10 link here。
答案 1 :(得分:1)
来自文档中的教程:
项目与应用 项目和应用程序之间有什么区别?应用程序是执行某些操作的Web应用程序 - 例如,Weblog系统,公共记录数据库或简单的轮询应用程序。项目是特定网站的配置和应用程序的集合。项目可以包含多个应用程序。一个应用程序可以在多个项目中。
https://docs.djangoproject.com/en/dev/intro/tutorial01/#creating-models
如果你将它与youtube进行比较,整个youtube网站可能是一个大项目,功能分为视频搜索,消息传递,个人资料/频道创建等应用......如果结构更简单,你可以保留不同的部分一个地方,这取决于你。我宁愿只开始分道扬声。
答案 2 :(得分:1)
在official Django documentation中:
1)应用程序是执行某些操作的Web应用程序,例如,博客系统
2)项目是特定网站的配置和应用程序的集合
3)项目可以包含多个应用程序。应用程序可以在多个项目中。
答案 3 :(得分:0)
应用可以是可以在网站中执行某些特定任务的任何东西。例如:银行领域->贷款申请,信用卡/借记卡申请等
项目是特定网站的应用程序集合。例如:银行软件,Gmail,Facebook等。
引用:https://consideratecode.com/2017/12/29/django-app-project-site/