11

我试图在 django 和 yii 之间进行选择,以获得具有数据库(最好是 mysql)后端的可扩展、可维护的企业级 web 应用程序。该应用程序主要专注于数据输入,但具有自定义工作流程(超出您的基本自动生成的 crud 表单)和自定义报告。我有CS背景,熟悉MVC,有c++、C#编程背景。8 年前使用 php、mysql、perl/cgi 构建了一个类似的应用程序,记住它很痛苦(从头开始做所有事情,学习曲线陡峭)。需要再次学习 python 或 php 语法,但我很快就学会了语言。在线阅读有关 django vs yii 的大量信息。由于需要开源,无法走 .net mvc 路线。涉足 RoR ,喜欢这种语言,但我对现在发生的魔法不太满意,尤其是对于生产级应用程序。或许在将来。

决定因素是:
1)更容易的学习曲线
2)更适合我需要的特定任务的框架 - 繁重的数据库操作,自定义 UI 流(没有太多 gfx 密集型,只是常规表单元素,但我需要通过多个表操作数据joins 等)
3)db 连接没有令人讨厌的惊喜(阅读但不完全理解 django orm 和 mysql 的所有陷阱)。
4)我不为基本的东西与框架/语言抗争的东西
5)可扩展和快速的运行时间(我知道很多取决于一位架构师如何解决方案)

请指教。向熟悉在这两个框架中工作过的人寻求帮助。多谢

4

4 回答 4

12

我知道这是旧的,但我觉得我可以添加到这个,使用了这两个框架。

Yii 是一个可靠、快速的框架。由于某些事情(例如跨站点请求伪造保护)未默认启用或强制执行,它不如 Django 开箱即用安全。对我来说,最大的优势是内置代码生成器,因为一旦你弄清楚并开始使用它,它基本上会在几分钟内生成一个功能齐全的 CRUD 应用程序。

Django 是我选择的框架,因为 Python 是 Django 的最大优势。不是在使用 PHP,我实际上真的很喜欢这种语言,但是 Python 的干净的面向对象性(那个词?)、类继承等确实在 Django 之类的框架中大放异彩。Django 中没有内置代码生成器,这是开发人员深思熟虑的选择。这既是优势,也是劣势。如果你真的想学习这个框架,Yii 的代码生成器可能会成为一个拐杖,但是使用 Django,一旦你了解了它是如何工作的,你就可以进入并改变任何东西,因为你自己构建了它,它迫使你很好地学习框架。使用 Yii,当您拥有生成的代码并且必须进行自定义时,您可能会很快开始与框架抗争。

Django 的 ORM 非常灵活,我自己也是一个 SQL 专家,我想我在我的应用程序中只使用过一次原始 SQL。Yii 非常好,但我在这方面也支持 Django,而且 Django 的文档非常好。

根据我的经验,Yii 的安装比 Django 稍微容易一些。Django 需要更多的工作才能启动和运行。Django 的教程比 Yii 强得多,至少在我开始的时候是这样。

于 2013-08-22T17:33:58.977 回答
9

我的建议是 Django。Django 中的表单是类,在过去 16 年中我工作过的所有框架中,从经典的 ASP 到 .NET、Rails 和 Java,我都会将 Django 的表单方式与它们中的任何一个进行对比。

South 让模式和数据迁移变得异常简单。

我建议在 MySQL 上使用 Postgres,特别是如果您要使用 Django ORM,因为它对 Postgres 进行了更精细的调整。如果你不需要 Django 管理员并且你必须使用 MySQL,你可以看看 SQLAlchemy 和 Alembic。

Django 的学习曲线非常平坦。它非常容易学习,并且有很好的文档记录。

我的 0.02 美元。

于 2013-04-04T18:13:22.570 回答
5

易烊千玺很棒。我可以学会它并在几个小时内开始。我很难设置 Django,因为配置和 URL 映射需要让任何东西正常工作。毫无疑问,一旦你学会了 Django,它就很棒,但根据我的经验,Yii 更容易学习。

我真的希望有人将 Yii 移植到 python。

于 2014-10-11T04:19:00.233 回答
2

以下是两个框架的一些比较...

http://blog.leehsueh.com/2010/03/django-vs-yii/

http://vschart.com/compare/yii/vs/django-framework

于 2013-04-04T17:46:37.310 回答