从 Java 开发人员的角度来看 Django [关闭]
Posted
技术标签:
【中文标题】从 Java 开发人员的角度来看 Django [关闭]【英文标题】:Django from Java developer perspective [closed] 【发布时间】:2010-08-04 12:50:49 【问题描述】:我是一名长期的 Java 程序员,最近我正在研究 Django,看看它提供了什么。
在我看来,Django 不符合 Java Web 开发人员的口味。
我的意思是,在 MVC Java Web 框架中,我们通常有一个控制器类来接收请求,执行逻辑,然后将请求转发到另一个目的地。
Rails 也遵循这种范式。
另一方面,Django 看起来有点程序化,你在一个文件中映射请求,在另一个文件中编写处理程序,在另一个文件中编写域类......
所以,我认为 Rails 适合 Java Web 开发人员的口味,而 Django 适合 php 人。
如果你是一名 Java Web 开发者,你如何看待 Django?
您是一名乐于使用 Django 的 Java 程序员吗?
(我没有小看 Django,Django 框架是毋庸置疑的)。
【问题讨论】:
【参考方案1】:另一方面,Django 看起来有点程序化,你在一个文件中映射请求,在另一个文件中编写处理程序,在另一个文件中编写域类......
作为一名 Java 开发人员,这与传统的 Java MVC 模式有何不同?只是名称不同:Django uses "view" for what is traditionally (in Java-land) called a Controller, "template" for View 等
您的 Java 应用程序中没有域类吗?
在 Java 领域,当你有一个 MVC webapp 时,你有同样的逻辑拆分:
您在 Controller 中编写请求处理逻辑 您在模型/域类中代表“域” 您在视图模板/类中编写显示逻辑我很难理解你认为 Django 的不同之处。
【讨论】:
Django 使用单个文件存储域对象,使用单个文件收集请求处理程序。在 Java 中您编写 POJO 或继承一个类,在 Python 中您编写普通方法,没有面向对象世界的感觉。我不觉得有一种分裂或“干净的布局”。这就是我所说的程序性质。 @El Gusto - 没有人要求您在一个文件中编写“域类”(我假设您的意思是 Django 模型) - 事实上,将它们拆分是一种更好的做法。我不知道你所说的 Django 感觉不到 OO 是什么意思。你的意思是你不能有面向对象的视图?如果是这样,你可以(见***.com/questions/742/class-views-in-django)。 是的,对不起,我的意思是 Django 模型(对不起,我是 Django 领域的新手)。如何将模型拆分为多个文件?说我希望每个模型都有自己的文件。不是所有模型都应该在 models.py 中吗? 不,他们不需要。在 python 中,拥有一个.py
文件和许多 classes
和拥有许多 .py
文件,每个文件都有一个类之间没有区别。
不管它是否是最佳实践,我倾向于将 django 视为一个 hmvc 框架,将“应用程序”的域类映射到一个模型文件,但将逻辑分解为模块或应用程序,如果有领域类的逻辑组,将它们组合成子包:即: (book.yellowpages.company.person.model) 。每个应用程序都保持 mvc 分离。您几乎可以将域逻辑放在任何您想要的地方,django 只为您提供了一些默认设置方式。以上是关于从 Java 开发人员的角度来看 Django [关闭]的主要内容,如果未能解决你的问题,请参考以下文章