Python中sqlite数据输入的GUI界面

时间:2011-06-29 00:55:58

标签: python sqlite user-interface ms-access

我正在创建一个简单的sqlite数据库来存储一些非敏感的客户端信息。我对python + sqlite非常熟悉,并且更喜欢在这个项目上坚持使用这个组合。我想创建一个简单的GUI界面,用于数据输入和数据库搜索......与MS Access提供的内容非常相似。我希望我的妻子能够轻松地输入/搜索数据,因此PHPmyadmin风格的东西是不可能的。

我知道我可以放弃并获得MS Access,但如果有理由可能只是自己编写代码,那么它将在我的计算机上运行(* nix)并且非常灵活(因此我可以稍后将其与Web集成)应用程序和我们的智能手机。)

开发人员是否可以推荐任何可以轻松实现此目的的接口/包/等(最好是pythonic)?

谢谢!

3 个答案:

答案 0 :(得分:9)

由于您对将来与Web应用程序的集成感兴趣,因此您可以考虑使用Python Web框架并在您的计算机上本地运行应用程序,使用Web浏览器作为界面。在这种情况下,一个简单的选择是web2py。只需download,解压缩并运行,您就可以使用基于Web的IDE(demo)快速创建一个简单的CRUD应用程序(如果您真的想保持简单,您甚至可以使用它用于构建应用程序的“新应用程序向导”(demo)。它包含自己的服务器,因此您可以在本地运行您的应用程序,就像桌面应用程序一样。

您可以使用web2py DAL(数据库抽象层)来定义和创建SQLite数据库和表(无需编写任何SQL)。例如:

db = DAL('sqlite://storage.db')

db.define_table('customer',
    Field('name', requires=IS_NOT_IN_DB(db, 'customer.name')),
    Field('address'),
    Field('email', requires=IS_EMAIL()))

上面的代码将创建一个名为storage.db的SQLite数据库,并创建一个名为“customer”的表。它还为“名称”和“电子邮件”字段指定表单验证器,因此只要通过表单填写这些字段,就会验证条目(“名称”不能在数据库中,“电子邮件”必须是有效的电子邮件地址格式) - 如果验证失败,表单将显示相应的错误消息(可以自定义)。

DAL还将自动处理架构migrations,因此如果更改表定义,将更新数据库架构(如有必要,您可以完全关闭迁移或基于每个表关闭迁移)。

定义数据模型后,您可以使用web2py的CRUD系统来处理所有数据输入和搜索。只需包含这两行(实际上,它们已经包含在'welcome'脚手架应用程序中):

from gluon.tools import Crud
crud = Crud(db)

在控制器中,定义以下操作:

def data():
    return dict(form=crud())

这将公开一组预定义的URL,使您能够在任何表格中创建,列出,搜索,查看,更新和删除记录。

当然,如果您不喜欢某些默认行为,有很多方法可以自定义CRUD表单/显示,或者您可以使用某些web2py的其他forms functionality来构建完全自定义的界面。 web2py是一个全栈框架,因此随着需求的扩展(例如访问控制,通知等),您可以轻松地为应用添加功能。

请注意,web2py不需要安装或配置,也没有依赖关系,因此将应用程序分发到其他计算机非常容易 - 只需压缩整个web2py文件夹(包括您的应用程序文件夹)并将其解压缩到另一台计算机上。它将在* nix,Mac和Windows上运行(在Windows上,您需要安装Python或下载web2py Windows二进制文件而不是源版本--Windows二进制文件包含自己的Python解释器。)

如果您有任何疑问,可以提供非常有帮助且反应灵敏的mailing list。您也可以从现有的web2py applications获得一些想法。

答案 1 :(得分:5)

虽然不是python程序,但SQLite Manager是SQLite非常流行的开源GUI界面。我强烈推荐它,在任何平台(Mac,Linux,Windows)上运行作为Mozilla Firefox扩展。你可以在Mozilla Firefox Add-On Site

上得到它

使用Firefox扩展来管理数据库可能听起来很奇怪,但这只是利用Firefox内置的GUI框架来构建一个优秀的SQLite管理应用程序。

答案 2 :(得分:1)

我通常使用记录良好的Python bindings的GTK +。

最大的优点是你可以使用一个相当直观的GUI编辑器(Glade)并自动将回调链接到事件(说实话,大多数其他主要的图形工具包也有这种可能性,例如QT,但是我的感觉是GTK +在Python社区中得到了更广泛的采用。编辑:另外GTK由Gnome和许多其他桌面环境使用(但KDE使用QT)。

也就是说,如果您只需要一个受信任的人插入数据,那么您可以使用像SQLite manager这样的内容(它是FireFox插件)。


完全替代解决方案:使用django,您可以从字面上通过阅读教程,让您的应用在几个小时内启动并运行,包括用户身份验证,后端行政界面等(你的项目正是我用它做的,让我的妻子在我们的家庭预算中插入费用)。

Django是用Python编写的,你可以使用SQLite作为后端。