【问题标题】:Django from Java developer perspective [closed]从 Java 开发人员的角度来看 Django [关闭]
【发布时间】: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 框架是毋庸置疑的)。

【问题讨论】:

    标签: java python 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 是什么意思。你的意思是你不能有面向对象的视图?如果是这样,你可以(见stackoverflow.com/questions/742/class-views-in-django)。
    • 是的,对不起,我的意思是 Django 模型(对不起,我是 Django 领域的新手)。如何将模型拆分为多个文件?说我希望每个模型都有自己的文件。不是所有模型都应该在 models.py 中吗?
    • 不,他们不需要。在 python 中,拥有一个 .py 文件和许多 classes 和拥有许多 .py 文件,每个文件都有一个类之间没有区别。
    • 不管它是否是最佳实践,我倾向于将 django 视为一个 hmvc 框架,将“应用程序”的域类映射到一个模型文件,但将逻辑分解为模块或应用程序,如果有领域类的逻辑组,将它们组合成子包:即: (book.yellowpages.company.person.model) 。每个应用程序都保持 mvc 分离。您几乎可以将域逻辑放在任何您想要的地方,django 只为您提供了一些默认设置方式。
    猜你喜欢
    • 1970-01-01
    • 2011-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-10
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多