首页 / 知识
关于python:大型Django项目的项目设计/ FS布局
2023-04-14 05:26:00

Project design / FS layout for large django projects布置大型Django项目的最佳方法是什么? 这些教程提供了有关设置应用程序,模型和视图的简单说明,但有关如何细分应用程序和项目,在典型项目中的应用程序之间允许/需要多少共享的信息较少(显然,这在很大程度上取决于 项目)以及如何/在何处保存常规模板。 是否有人提供示例,建议和解释,说明为什么某个项目布局比另一个项目布局更好? 我对合并大量的单元测试(实际代码库大小的2-5倍)和字符串外部化/模板特别感兴趣。 主要准则与任何其他大型代码项目相似。应用程序应满足一个明确定义的责任。名称"应用程序"用词不当;应该将Django应用程序更多地视为可重用的组件,可以将其插入在一起以创建真实的应用程序。每个应用程序的测试都应包含在该应用程序中。应用程序应尽可能彼此分离,但显然会有依赖关系,因此目标应是使依赖关系图尽可能简单和合理。 我更喜欢将项目的所有模板都保留在单个项目范围的模板目录下,每个应用程序都有一个子目录(在Django中,每个应用程序都使用模板子目录是非常严格的约定,因为它避免了应用程序之间的模板名称冲突) 。一个项目范围的模板目录的原因是模板,模板继承树和块名称可能是特定于项目的,因此很难提供可以插入任何项目的"默认"应用程序模板。我们已经尝试过为基础站点范围的模板及其定义的块确定标准的命名约定,但是我还没有看到一个标准出现(它们在Pinax上完成工作的方式可能是我们最接近于标准)。 关于"字符串外部化",如果您的意思是i18n和l10n,则Django对放置.po文件的位置和标准位置具有强大的支持-请检查文档。
我发现Zachary的布局非常有用 此页面很好地解决了我的一些问题:http://www.b-list.org/weblog/2006/sep/10/django-tips-laying-out-application/ 特别:
关于tests.py和tests(目录)的注释也适用于模型,这有助于解决一个文件可以使用多个测试(或模型)的问题。 我仍然希望看到一些示例/针对应用程序/项目的建议,以及大型Django网站都可以正常运行。 Pinax项目是围绕小型可重复使用的应用程序的想法构建的,这些应用程序很容易集成到项目中。他们已将Cloud 27项目用作演示项目。 我正在研究的Django项目(称为Basie。它是0.1之前的版本,因此尚无链接。)正在尝试遵循Pinax模型,到目前为止,它的运行情况还不错。 我真的很喜欢Randall Degges关于这个主题的文章。他没有提供有关如何将设置文件粘合在一起的信息,但是我将发表一篇文章,我将能够链接该文章,但是现在任何人都可以签出我的repo,其中我在自述文件中提供了一些指导。 我当前的布局源于我希望对网站进行测试版。这意味着每个站点都有两个项目,因为它们需要不同的配置,这迫使我将所有应用程序移出项目。 我创建了两个文件夹:$ APP_ROOT / devel和$ APP_ROOT / prod。这些包含所有应用程序。使用源代码控制(在我的情况下为git),在HEAD修订版中开发了应用程序,而prod中的应用程序锁定在PROD标签上。模板也有自己的文件夹,其布局与应用程序相同。 现在,我可以在devel-apps文件夹和匹配的模板文件夹中进行所有开发。当我有满意的事情时,我会标记该修订并更新产品。 |
最新内容
相关内容
linux命令创建项目组?
linux命令创建项目组?,管理,密码,项目,命令,系统,位置,文件,用户组,用户,文件夹,linux命令中用root用户新建一个user1用户,新建一个group1的组linux命令长度设置?
linux命令长度设置?,地址,工作,命令,管理,环境,系统,信息,目录,文件,参数,Linux下使用exec时,命令行参数长度有限制吗对于新程序的命令行参数linux双ip设置命令?
linux双ip设置命令?,地址,系统,代码,网络,设备,服务,通讯,名称,信息,密码,linux双网卡双IP双网关如何配置一般情况下,默认网关已经自动设置好了linux命令项目部署?
linux命令项目部署?,项目,服务,环境,软件,系统,代理,管理,统一,做好,业务,怎么把php部署到apache服务器上linux?1、在linux部署php项目的方法:linux用户组命令设置?
linux用户组命令设置?,管理,系统,密码,代码,电脑,用户组,用户,软件,新增,命令,linux怎么设置用户组1、首先我们需要在电脑上打开linux操作系统linux密钥设置命令?
linux密钥设置命令?,密码,服务,数据,认证,环境,官网,系统,概念,通信,管理,如何保证Linux服务器的安全实际上,SSH不仅可以保障Linux主机之间的安命令行怎么设置linux?
命令行怎么设置linux?,系统,工作,命令,密码,信息,地方,工具,终端,文件,目录,切换Linux系统下图形界面与Linux命令行模式手工切换:在图形界面中linux部署项目的命令?
linux部署项目的命令?,项目,系统,设备,环境,工作,基础,传播,信息,标准,代码,Linux部署springBoot项目并且查看控制台日志指定路径:如下: /data/wlinux项目常用命令?
linux项目常用命令?,工作,地址,系统,信息,管理,项目,命令,目录,标准,网络,linux常用的20个命令系统管理相关命令:df、top、free、quota、at、lplinux项目更新命令?
linux项目更新命令?,系统,信息,网络,地址,网站,通信,管理,时间,项目,命令,linux必学的60条命令是什么?压缩和解压缩:tar:打包或解包文件。gzip:压启动项目命令linux?
启动项目命令linux?,工作,经理,产品,技术,地址,数字,系统,项目,命令,信息,怎么在linux启动的时候执行一个命令?1、在启动时执行 Linux 脚本 有linux内核设置命令?
linux内核设置命令?,系统,信息,工作,管理,地址,命令,名称,情况,发行,目录,如何用命令行设置linux内核参数1、sudo -e /etc/default/grub GRUB_