Fundamentals每个应用程序都应该只做一件事。它的功能应该用简单的句子清楚地描述。如果在描述过程中使用了多个“和”,则可能意味着该应用程序有点大,需要拆分。JamesBennett:创建和维护一个好的Django应用程序的艺术在于,它应该遵循DouglasMcIlroy所说的截断的Unix哲学:“编写只做一件事的程序并将其做好。”如何给DjangoApp起名字尽量用一个词,比如animals,blogs,dreams,polls。简单且语义清晰的项目名称更易于维护。如果合适,请使用应用程序名称的复数形式引用应用程序中主数据模型的名称。命名时考虑URL的形式。例如,博客的URL可以是http://www.example.com/weblog/,因此您可以考虑将应用命名为weblog而不是blog或posts。名称全部使用小写字母,不要使用数字等其他字符,必要时可以使用下划线_,但尽量避免使用。犹豫的时候,选择小程序解决方案。App功能的拆分和设计是一门艺术,而不是技术。所以未来可能需要拆分重组。尽量让一个App足够小,多个小App比一个大App更容易维护。App中有哪些模块?通用模块:这些模块在99%的Django应用中都可以看到:uncommonmodulescoops/behaviors.pyconstants.pycontext_processors.pydecorators.pydb/exceptionsfields.pyfactories.pyhelpers.pymanagers.pymiddleware.pysignals.pyutils.pyviewmixins.py各模块功能说明如下:模块功能说明constants.pyApp级设置值,如果App中的设置值过多,应独立放在该文件中。Decorators.pyApp的decoratordb/package自定义数据模型项和其他数据库相关的组件字段。py放置自定义的数据模型项,如果数据库相关的组件不多,可以只放在这个文件中,不用创建db包factorys.py生成测试数据的工厂函数helpers.py是从views.py中提取出来的和models.pyutils.py的一些辅助功能函数和helpers.pymanagers.py是一样的。当models.py非常大时,可以提取自定义模型管理器signals.py自定义信号viewmixins.pymixins引用从views.py中提取:Django的两勺:Django1.8的最佳实践
