Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP、Python和PostgreSQL设计是否适合于业务应用程序?_Php_Python_Postgresql - Fatal编程技术网

PHP、Python和PostgreSQL设计是否适合于业务应用程序?

PHP、Python和PostgreSQL设计是否适合于业务应用程序?,php,python,postgresql,Php,Python,Postgresql,我正在寻找一些关于我希望构建的业务应用程序的快速想法。我想分别使用PHP、Python和PostgreSQL将表示、域逻辑和数据这三层分开。我想听听,可能是以前走过这条路的其他人,这种方法是否有问题,我是否瞄准了错误的工具,等等 我正在研究PHP,因为它被广泛使用,相当成熟,而且我可以找到大量具备PHP界面设计技能的人 我之所以研究Python,是因为可读代码的好处,因为我听说可以找到更多同时具备主题技能(在本例中是金融)的Python程序员,而且它是一种开源语言。另外,它似乎更容易编码 我正

我正在寻找一些关于我希望构建的业务应用程序的快速想法。我想分别使用PHPPythonPostgreSQL表示域逻辑数据这三层分开。我想听听,可能是以前走过这条路的其他人,这种方法是否有问题,我是否瞄准了错误的工具,等等

  • 我正在研究PHP,因为它被广泛使用,相当成熟,而且我可以找到大量具备PHP界面设计技能的人

  • 我之所以研究Python,是因为可读代码的好处,因为我听说可以找到更多同时具备主题技能(在本例中是金融)的Python程序员,而且它是一种开源语言。另外,它似乎更容易编码

  • 我正在查看PostgreSQL中的事务级功能MySQL在这里也是一个选项,但我不需要讨论这方面

这不是一个web应用程序,尽管我想使用浏览器作为用户界面。这更像是一个企业应用程序,但对于用户数量适中(可能为5-10)且日常事务数量适中的小型企业而言

重要的是,我们能够在将来独立于其他层升级数据库或域逻辑或接口

我不是在寻找一场购买与构建的辩论,因为这是一场不同的讨论


谢谢你的见解

我个人同意你文章中的第二点和第三点。说到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

底线。大部分技能都是Python。ORM在语法上是Python,但在简单、干净地做事情时需要谨慎。模板是它自己的语言,但比PHP简单得多。剩下的是SQL、Javascript、HTML、CSS、Apache等等


编辑

Django成熟度

  • 有关活动项目的数量,请参见

  • 每天都有大量来自用户的电子邮件加入


Django博客可以追溯到05年,这意味着他们在08年9月最终发布1.0之前有多年的丰富经验。开发显然是从03年开始的。

只需跳过PHP,使用Python(使用Django,正如我打字时已经注意到的那样)。Django已经像您提到的那样分离了层

我自己从来没有使用过PgSQL,但我认为这主要取决于你是否喜欢它而不是MySQL。它过去支持比MySQL更多的企业功能,但我不确定MySQL 5.0和5.1是否仍然支持这种功能。无论如何,MySQL支持事务(您可以