我正在使用Django创建我的第一个真正的网站,但我仍然在努力理解项目和应用程序之间的区别.

例如,我的网站是一个体育新闻网站,它将包含文章、排名表和"固定与结果"等部分,我的问题是,这些部分是否都应该在整个项目中的一个单独的应用程序中?这种情况下的最佳实践是什么?

推荐答案

project是指整个应用程序及其所有部分.

app指的是项目的一个子模块.它是自给自足的,不会与项目中的其他应用程序交织在一起,因此,从理论上讲,你可以把它捡起来,然后放到另一个项目中,而不需要任何修改.app通常有自己的models.py(实际上可能是空的).您可能会认为它是一个独立的python模块.一个简单的项目可能只有一个应用程序.

例如,project是整个网站.你可以把它组织成一个app用于文章,一个app用于排名表,一个app用于固定装置和结果.如果他们需要彼此交互,他们可以通过有良好文档记录的公共类和访问器方法来实现.

要记住的主要事情是apps人之间的相互依赖程度.在实践中,这都是一个project,所以没有必要过火,但请记住这两个应用程序是如何相互依赖的.如果你发现一个应用解决了两个问题,把它们分成两个apply.如果你发现两个应用程序如此相互交织,你永远无法在没有另一个的情况下重用它们,那么将它们组合成一个应用程序.

Django相关问答推荐

Django:无法分配必须是实例(&Q;X),不想获取对象(&Q;)

升级到4.2时,获取默认文件存储/存储是互斥的

设置wagail开发环境时出现ImportError:";无法从';wagta.search;";导入名称.

如何在uwsgi中创建单个日志(log)文件?

一次请求中更新整个Django模型

Django prefetch_related 与 3 个不直接相关的模型

如何在 ModelViewSet 逻辑中读取查询字符串值?

Django RESTful API - django-piston vs. django-tastypie

Django:无法从另一个应用程序导入模型

模板过滤器修剪任何前导leading或尾随trailing空格

验证 Django 模型对象的正确方法?

Django UrlResolver,在运行时添加 url 进行测试

Django JavaScript 文件

带有 Django 和 Python 的 Atlassian Bamboo - 可能吗?

导入错误无法在windows环境下导入名称execute_manager

在 Django 中舍入小数点

Django ORM 能否以可靠的与后端无关的方式存储无符号 64 位整数(又名 ulong64 或 uint64)?

Django 有 SmallIntegerField 的原因是什么?

Django urls 直接到 html 模板

Python/Django - 避免在源代码中保存密码