bkm*_*ron 0 python django hmvc
我已经使用带有HMVC模块扩展的CodeIgniter开发了一些Web应用程序.我的项目文件夹结构就像
Project
| config(common for module1 & module2)
| | database.php
| | config.php
| modules
| | module1
| | | config(module1 specific)
| | | | database.php
| | | | config.php
| | | model
| | | | ...
| | | view
| | | | ...
| | | controllers
| | | | ...
| | module2
| | | config(module2 specific)
| | | | database.php
| | | | config.php
| | | model
| | | | ...
| | | view
| | | | ...
| | | controllers
| | | | ...
Run Code Online (Sandbox Code Playgroud)
文件夹结构显示我有module1和module2的公共配置以及模块特定的配置.现在,我计划将Python和Django用于一个比我之前开发的更多数字模块更大的项目.我认为管理可扩展应用程序的最佳方法是使用HMVC设计模式.那么,任何人都可以告诉我在Django中有相当于HMVC(通用配置和模块特定配置)的东西.
在罗马的时候...
首先,不管HMVC理论的优点如何,如果你正在开始你的第一个Django项目,那么最好不要偏离Django中的"常见做法".后来,当你对它感到满意时,你可以做任何你认为会有所改进的改变.
相反,如果你真的喜欢并且觉得最好坚持的模式,那么最好选择最能体现这些模式的工具.如果Django难以做你认为最好的事情,那么它就不是你最好的选择.
现在详细说明.Django没有尝试将自己呈现为MVC框架,关于MTV(模板模板,视图)的FAQ条目有点过时,因为它试图将这种模式呈现为MVC的"重新解释"; 但现在它更像是"不是MVC".主要是因为Django中没有"控制器".
在第一次快速阅读HMVC上的维基百科页面时,它似乎是将控制器拆分为更本地化的代码,避免单个"上帝对象",并改善模块化.由于Django中没有控制器,乍一看似乎HMVC在Django中没有任何意义.
但是,据说在Django中,URL映射填充了"控制器"的概念.知道吗?它们是分层的,模块化的!
所以,根据你对HMVC的定义,你可能会发现Django已经在做了!
但是,严肃地说,当你转换技术时,请留下先入之见.
(免责声明:我真的很喜欢Django架构,因为我发现它非常容易启动并且非常容易维护.同时,我对于Web服务器框架的MVC并不在意,因为我认为这是一个糟糕的改编为桌面GUI模块化应用程序制定的MVC理论.具有讽刺意味的是,前端框架偏离"web MVC"并重新发现"GUI MVC")
| 归档时间: |
|
| 查看次数: |
705 次 |
| 最近记录: |