PHP、Python和PostgreSQL设计是否适合于业务应用程序?
我正在寻找一些关于我希望构建的业务应用程序的快速想法。我想分别使用PHP、Python和PostgreSQL将表示、域逻辑和数据这三层分开。我想听听,可能是以前走过这条路的其他人,这种方法是否有问题,我是否瞄准了错误的工具,等等PHP、Python和PostgreSQL设计是否适合于业务应用程序?,php,python,postgresql,Php,Python,Postgresql,我正在寻找一些关于我希望构建的业务应用程序的快速想法。我想分别使用PHP、Python和PostgreSQL将表示、域逻辑和数据这三层分开。我想听听,可能是以前走过这条路的其他人,这种方法是否有问题,我是否瞄准了错误的工具,等等 我正在研究PHP,因为它被广泛使用,相当成熟,而且我可以找到大量具备PHP界面设计技能的人 我之所以研究Python,是因为可读代码的好处,因为我听说可以找到更多同时具备主题技能(在本例中是金融)的Python程序员,而且它是一种开源语言。另外,它似乎更容易编码 我正
- 我正在研究PHP,因为它被广泛使用,相当成熟,而且我可以找到大量具备PHP界面设计技能的人
- 我之所以研究Python,是因为可读代码的好处,因为我听说可以找到更多同时具备主题技能(在本例中是金融)的Python程序员,而且它是一种开源语言。另外,它似乎更容易编码
- 我正在查看PostgreSQL中的事务级功能MySQL在这里也是一个选项,但我不需要讨论这方面
谢谢你的见解我个人同意你文章中的第二点和第三点。说到PHP,我认为您也可以使用Python进行演示,有许多基于Python的解决方案(Zope、Plone…)。请看 Python代码。一种模板语言,允许与PHP有一些相同的特性——语法略有不同 模型与视图功能(“业务规则”)和表示分离。这在整个Django都是强制执行的 其中一个常见的问题是“为什么我不能在Django模板中做一些疯狂的类似PHP的事情?”答案是演示文稿没有处理。在Django视图函数中执行处理。在模板中将结果呈现为HTML 此外,Django还有一个ORM层,可以让您摆脱琐碎的SQL考虑。MySQL或PostgreSQL在Django中或多或少是等效的
编辑 “成熟”意味着很多事情。你特别提到熟练的人是成熟的标志 Django是纯Python。如果你能找到Python人员,他们可以在几天内学习Django。他们只需要做教程
- Django驱动的站点通常是Apache+someglue+Django。胶水可以是mod_wsgi、mod_python或mod_fastcgi。您必须谨慎地管理此配置,因为存在多个移动部件。然而,这与PHP的Apache配置问题相同——这里没有什么新的内容
- Django站点有一个或多个Django服务器实例,每个实例都有一个设置文件、一个URL映射和任意数量的应用程序。这是纯Python
- Django应用程序具有URL映射、模型和视图。都是纯Python。使用Python内部unittest框架的Django扩展进行单元测试
- 该模型使用ORM层。这也许是Django最令人困惑的事情。人们有时会设计非常奇怪的模型,因为他们认为uber通用性太高,或者他们认为SQL太多。Django是主要面向对象的中间立场,并考虑了一些SQL。拿到这个,你就势不可挡了
- Django应用程序可能有自己的模板语言的模板。这将是唯一一个非常有趣的非Python的东西。您可能需要添加自定义标记——纯Python
- 您可能会有JavaScript(对于PHP和其他所有web应用程序框架也是如此)。这里没什么新鲜事
- 由于Django的管理应用程序会自动处理基本的CRUD处理,因此您不必编写此代码。您可以自由编写所有需要的事务性内容。但你不必这么做。这会让你看到一个非常非常强大的混合动力车
- 您编写了一些复杂、关键的事务。纯Python,顺便说一句
- 您不需要编写任何哑表维护事务。没有任何代码比Python或PHP更好
- 在您使用模板引擎和CSS之后,您可以定制管理界面,使其看起来像您想要的任何东西。这是HTML/CSS的东西,没有Python或PHP
编辑 Django成熟度
- 有关活动项目的数量,请参见
- 每天都有大量来自用户的电子邮件加入
Django博客可以追溯到05年,这意味着他们在08年9月最终发布1.0之前有多年的丰富经验。开发显然是从03年开始的。只需跳过PHP,使用Python(使用Django,正如我打字时已经注意到的那样)。Django已经像您提到的那样分离了层 我自己从来没有使用过PgSQL,但我认为这主要取决于你是否喜欢它而不是MySQL。它过去支持比MySQL更多的企业功能,但我不确定MySQL 5.0和5.1是否仍然支持这种功能。无论如何,MySQL支持事务(您可以