首页 / 知识
关于python:何时在Django中创建新应用(使用startapp)?
2023-04-15 10:36:00

When to create a new app (with startapp) in Django?我已经为此进行了搜索,但是在Django定义为" apps"方面仍然存在麻烦。 我是否应该为站点中的每个功能创建一个新应用,即使该应用使用了主项目中的模型? 你们对何时拆分新应用以及何时将功能与"主项目"或其他应用保持在一起有很好的经验吗? James Bennett提供了一组精彩的幻灯片,介绍了如何在Django中组织可重用应用程序。 我更喜欢将Django应用程序视为可重用的模块或组件,而不是"应用程序"。 这有助于我封装某些功能并将它们相互分离,从而提高了可重用性(如果我决定与整个社区共享特定的"应用")以及可维护性。 我的一般做法是将特定功能或功能集存储到"应用程序"中,就像我要公开发布它们一样。这里最困难的部分是弄清楚每个存储桶有多大。 我使用的一个好技巧是想象如果我的应用程序公开发布后将如何使用它们。这通常鼓励我缩水缩水,更清楚地定义其"目的"。 这是2008年9月6日更新后的演示文稿。 DjangoCon 2008:可重复使用的应用程序@ 7:53 幻灯片:Reusable_apps.pdf
我倾向于为每个逻辑上分离的模型集创建新的应用程序。例如:
我要遵循的规则是,如果我想在其他项目中重用该功能,则它应该是一个新应用。 如果需要深入了解项目中的模型,则将其与模型结合在一起可能会更有凝聚力。 我在网络上找到的对该问题的两个最佳答案是: 两个消息来源都同意您在以下情况下创建单独的应用程序:
这个问题的最佳答案是由Andrew Godwin(Django核心开发人员)给出的: 在我看来,应用程序的主要目的是提供可重用组件的逻辑隔离-具体来说,是用于model / admin / etc的一流名称空间。 -并提供一种简单的方法来解决问题或" offa"?。 从某些方面来说,这是创建Django时的遗物-Python封装和模块的开发远不如此,您基本上必须有自己的解决方案。也就是说,它仍然是Djangoa心理模型的核心部分,我认为INSTALLED_APPS仍比Pythona替代入口点提供的方法更干净,更轻松(这使得禁用一个已安装在您不想使用的环境中。 您今天是否特别认为可以与应用程序概念脱钩?模型和管理员需要它来进行自动发现和唯一的名称空间前缀,因此很难撤消,而且我在努力考虑需要它的其他功能时(实际上,如果您想要的只是一个库,您可以将其设为普通的Python版本-无需包装应用程序,除非您要运送模型,模板或管理代码IIRC) 一个"应用程序"可能有很多不同的东西,这一切真的让人难以置信。例如,假设您正在构建博客。您的应用程序可以是整个博客,也可以有一个"管理员"应用程序,一个用于所有公共视图的"站点"应用程序,一个" rss"应用程序,一个"服务"应用程序,以便开发人员可以在其博客中与该博客进行交互自己的方式等。 我个人将使博客本身成为应用程序,并扩展其中的功能。然后可以很轻松地在其他网站中重用该博客。 关于Django的一件好事是,它将目录树中任何级别的所有models.py文件都识别为包含Django模型的文件。因此,将功能分解为"应用程序"本身中较小的"子应用程序"并不会增加任何难度。 |
最新内容
相关内容
清空linux命令搜索?
清空linux命令搜索?,软件,系统,情况,命令,增长,工具,号码,密码,名称,位置,如何来清除Linux操作系统命令的历史记录clean 命令删除所有的软件安linux命令搜索大全?
linux命令搜索大全?,地址,工作,系统,命令,管理,目录,标准,基础,工具,网络,linux命令大全linux常用命令有pwd命令、cd命令、ls命令、cat命令、glinux搜索过去命令?
linux搜索过去命令?,系统,信息,命令,名称,工作,预期,数字,地址,标准,服务,Linux系统中怎么搜索文件命令大全grep命令 grep是一个强大的文本搜linux命令搜索命令?
linux命令搜索命令?,系统,位置,地址,标准,管理,信息,命令,名称,工作,文件,Linux下Grep命令的详细使用方法?查找root目录下包含Linux的文件,命令linux日志搜索命令?
linux日志搜索命令?,信息,系统,对比,工具,一致,日志,文件,命令,实时,网络,linux查看日志的命令是?具体怎么用第一种:查看实时变化的日志(比较吃linux命令字符搜索?
linux命令字符搜索?,系统,工具,命令,灵活,信息,工作,字符串,文本,文件,模式,linux命令grep1、在linux中grep命令是非常有用的,它和管道(|)配合linux命令中创建文本?
linux命令中创建文本?,系统,时间,文件,终端,名字,名称,发行,命令,文件夹,文件名,Linux命令如何创建,复制,打开,删除文件呢创建一个叫test的文linux搜索筛选命令?
linux搜索筛选命令?,系统,数字,电脑,盘后,盘中,工具,信息,文件,命令,字符,在linux系统如何grep过滤中,不包含某些字符1、./delete_lines.sh filinux搜索日志的命令?
linux搜索日志的命令?,实时,信息,系统,对比,最新,情况,日志,命令,地方,数据,下面哪个是linux动态查看最新100行日志的方式?使用tail -f可以查linux全局搜索命令?
linux全局搜索命令?,系统,工具,命令,灵活,信息,工作,字符串,文件,全局,字符,Linux常用指令---grep(搜索过滤)(转)Linux系统中grep命令是一种强linux命令搜索值高亮?
linux命令搜索值高亮?,包装,网上,环境,命令,颜色,文件,语法,终端,界面,方法,linux中shell界面下可以令某些特定字符高亮显示吗?1、一种思路就linux搜索命令大全?
linux搜索命令大全?,工作,地址,系统,命令,目录,灵活,工具,管理,信息,基础,linux搜索文件名命令(使用find命令在Linux上查找文件和目录)1、find