Python数据库应用程序框架和工具

2024-10-06 18:30:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在构建业务数据库应用程序,如财务、库存和其他业务需求应用程序。我正计划转向Python。最好从什么工具开始。我需要做主机,交易表格,处理(后端),报告和诸如此类的事情。数据库将是postgress或mysql。由于我是Python新手,我知道除了Python,我还需要ORM和一个框架。我的应用程序与网站无关,但如果需要,也可能需要通过web完成。

如何选择刀具组合的初始设置?


Tags: 工具数据库应用程序报告库存mysqlorm交易
3条回答

正如Boudewijn Rempt所写的here,“对于创建一个[[NON-web]]数据库应用程序的最简单方法,您可能需要查看一下PyQt”。他6年前写的,但我认为今天也是如此。pyqt4的QtSql模块尤其支持MySQL、PostgreSQL和其他一些数据库。

如果我是你,我可能会首先看看基于Django的基于web的解决方案是否起作用。如果您需要更好的外观,可以将jQuery添加到这个组合中。如果它提供的功能太少,请使用PyQt。如果你有很多非常小的应用程序,可以使用多种技术。下面,你会发现我(有些冗长)的理由。

Webapp与桌面应用程序

一年前,我们有一个商业数据库,需要一个前端。我们必须决定在前端使用什么技术。我们认为:

  1. PyQt
  2. 基于Web(查看here了解Python的Web框架工程的概述)

从我们的角度来看,PyQt的优势:

    以前的C++经验与Qt,我们知道Qt适合于任务。
  • 包括所有必要的工具。
  • 容易开发富有的客户。

但是,我们决定不使用PyQt,而是使用基于web的解决方案。原因是:

  • 对前端的要求不高,而且在浏览器中很容易实现 (主要是报告,一些用于输入数据或运行函数的表单)。
  • 应用程序的部署(以及新版本、错误修复等) 更容易,因为所有事情都只发生在服务器上的受控环境中。
  • 访问控制/身份验证/权限是“免费的”,因为它是服务器(在我们的例子中是使用Active Directory身份验证的Apache)和浏览器的一部分,这对我们很重要。
  • 应用程序无论如何都需要服务器连接,不必在客户端存储任何东西。

简而言之:功能丰富的前端在受控部署环境中具有许多功能,使用Qt可能更容易实现。对于我们轻量级的前端,基于服务器的解决方案对我们来说似乎更好。

哪个web框架?

既然我们已经决定了一项技术,我们必须选择一个框架。我们进行了一些研究,并详细研究了两种备选方案:

  1. Django
  2. 一个软件栈,由CherryPy作为分派器(将http请求与功能和所有相关的东西相匹配)、Mako作为生成网页的模板库、SQLAlchemy作为ORM和jQuery作为客户端功能组成。

我们评估了两个备选方案,最后确定了第二个方案。这个决定是由我们真正的“轻量级”前端需求(很多非常小的应用程序)驱动的。一堆软件——我们可以根据需要进行混合和匹配——对我们来说似乎更好。我们可以在不需要web前端的情况下重用SQLAlchemy,我们可以只使用CherryPy而不使用模板库和ORM,等等。在许多其他情况下,我会选择Django而不是这个堆栈。

总而言之:

  • 一个大型、复杂的应用程序->;PyQt
  • 一套相对相似、简洁的报告、表格等,只有一个外观和感觉->;Django
  • 一组相对不同的事物,它们在需求和使用的技术上有很大的不同,或者在其他情况下重复使用某些技术->;根据需要混合使用各种技术

如果我是你,我会从django开始。

相关问题 更多 >