django或yii用于使用db和自定义表单和报告构建生产Web应用程序

时间:2013-04-04 11:32:18

标签: django yii

我正在尝试在django和yii之间选择具有数据库(最好是mysql)后端的可扩展,可维护的企业级Web应用程序。该应用主要侧重于数据输入,但具有自定义工作流程(超出基本自动生成的crud表单)和自定义报告。我有CS背景,熟悉MVC,c ++编程背景,C#。 8年前使用php,mysql,perl / cgi构建了一个类似的应用程序,并记住它很痛苦(从头开始做陡峭的学习曲线)。需要再次学习python或php语法,但我很快就会学习语言。在线阅读关于django vs yii的广泛内容。由于需要开源,无法使用.net mvc路由。涉及RoR,喜欢这种语言但我对发生的魔法不太满意,特别是对于生产级别的应用程序。或许在将来。所以回到Django vs yii -

决策因素是:
1)更容易学习曲线
2)更适合我需要的特定任务的框架 - 重型数据库操作,自定义UI流程(没有太多gfx密集,只是常规表单元素,但我需要通过连接等操作多个表格上的数据) 3)db连接没有令人讨厌的意外(读取但未完全理解django orm和mysql的所有问题)。
4)我不打算基本事物的框架/语言的东西 5)可扩展和快速运行时间(我知道很多取决于一个架构师的解决方案)

请指教。寻求熟悉在两个框架中工作的人的帮助。非常感谢

4 个答案:

答案 0 :(得分:11)

我知道这已经过时了,但我觉得我可以添加这两个框架。

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

Django是我的首选框架,因为Python是Django的最大优势。在PHP上没有破坏,我实际上非常喜欢这种语言,但是Python的干净的面向对象(一个词?),类继承等真的很像Django这样的框架。 Django中没有内置代码生成器,这是开发人员的慎重选择。这既是力量,也是弱点。如果你真的想要学习框架,Yii的代码生成器可能会成为一个拐点,但是使用Django,一旦你了解它是如何工作的,你可以进去改变任何东西,因为你自己构建它,它会迫使你很好地学习框架。使用Yii,当您拥有生成的代码并且必须进行自定义时,那么您可以快速开始对抗框架。

Django的ORM非常灵活,我自己也是一个SQL人员,我认为我在我的应用程序中只使用过一次原始SQL。 Yii是相当不错的,但我也在这方面给了Django一个支持,而且Django的记录非常好。

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

答案 1 :(得分:9)

我的建议是Django。 Django中的表单是类,在过去16年中我所使用的所有框架中,从经典的ASP到.NET,Rails和Java,我将Django的表单与其中任何一个相结合。

South使得进行架构和数据迁移非常简单。

我建议使用Postgres而不是MySQL,特别是如果你要利用Django ORM,因为它对Postgres来说更加精细。如果您不需要Django管理员而且必须使用MySQL,那么您可以查看SQLAlchemy和Alembic。

Django的学习曲线非常平坦。它非常容易学习并且记录得非常好。

我的0.02美元。

答案 2 :(得分:2)

答案 3 :(得分:2)

Yii很棒。我可以学习它并在几个小时内开始学习。我努力设置Django,因为令人困惑的配置和URL映射是获得任何工作所需要的。毫无疑问,一旦你学会了Django就会非常出色,但根据我的经验,Yii更容易学习。

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