25

我正在尝试在 JetBrains PyCharm IDE 中创建一个新的 Django/Python 项目。但是,在输入我的软件名称时,它会通知我

“您不能将您的应用程序称为与您的项目相同的名称”。

为了完全理解 Django 中项目和应用程序之间的区别,我希望有人能够为一些已知的复合网站(如 Facebook、Gmail 和 YouTube)演示应用程序和项目之间的区别。

4

4 回答 4

30

我对 Facebook 的尝试:

facebook
  users
  messages
  notifications
  posts
  ...

基本上要点是应用程序代表整个项目的特定部分。此外,该应用程序可以“插入”到类似的项目中。为了可维护,应用程序应该有自己的目标,不同于其他应用程序的目标。

在优秀的“Two Scoops of Django”一书中,作者引用了 James Bennett:

创建和维护一个好的 Django 应用程序的艺术在于它应该遵循 Douglas McIlroy 所说的截断的 Unix 哲学:“编写只做一件事并做好它的程序”。

作者再次声明:

从本质上讲,每个应用程序都应该专注于其任务。如果一个应用程序不能用一个中等长度的句子来解释,或者你需要说不止一次“和”,这可能意味着应用程序太大,应该被分解。

2014 年 19 月 12 日更新

对于 Django 1.7 ,这个“项目和应用程序”的描述绝对值得一读。

2017 年 12 月 21 日更新

Django 1.10 链接在这里

于 2013-10-19T19:14:31.270 回答
1

来自文档中的教程:

项目与应用程序 项目和应用程序有什么区别?应用程序是做某事的 Web 应用程序——例如,Weblog 系统、公共记录数据库或简单的投票应用程序。项目是特定网站的配置和应用程序的集合。一个项目可以包含多个应用程序。一个应用程序可以在多个项目中。

https://docs.djangoproject.com/en/dev/intro/tutorial01/#creating-models

如果您将其与 youtube 进行比较,整个 youtube 网站可能是一个大项目,其功能分为应用程序,例如视频搜索、消息传递、个人资料/频道创建……如果结构更简单,您可以将不同的部分放在一个地方,这取决于你。我更喜欢只开始在路上分解东西。

于 2013-10-19T19:18:50.567 回答
0

官方 Django 文档中:

1) 应用程序是做某事的 Web 应用程序,例如博客系统
2) 项目是特定网站的配置和应用程序的集合
3) 项目可以包含多个应用程序。一个应用程序可以在多个项目中。

于 2013-10-19T19:19:54.067 回答
0

应用程序可以是任何可以在网站中执行某些特定任务的东西。例如:银行域 -> 贷款申请、信用卡/借记卡申请等。

项目是特定网站的应用程序集合。例如:银行软件、Gmail、Facebook 等。

参考:https ://consideratecode.com/2017/12/29/django-app-project-site/

于 2020-01-30T05:59:32.970 回答