用于Python中sqlite数据输入的GUI接口



我正在制作一个简单的sqlite数据库,用于存储一些非敏感的客户端信息。我非常熟悉python+sqlite,更愿意在这个项目中使用这个组合。我想创建一个简单的GUI界面,用于数据输入和数据库搜索。。。与MS Access提供的功能非常相似。我希望我的妻子能够轻松地输入/搜索数据,所以PHPmyadmin风格的东西是不可能的。

我知道我可以让步并获得MS Access,但如果可能的话,我宁愿自己写代码,这样它就可以在我的电脑上运行(*nix),而且很灵活(这样我以后可以将它与网络应用程序和我们的智能手机集成。)

你的开发人员能推荐任何接口/包等(最好是pythonic)吗?

谢谢!

由于您对未来与web应用程序的集成感兴趣,您可以考虑使用Python web框架,并使用web浏览器作为界面在机器上本地运行该应用程序。在这种情况下,一个简单的选择就是web2py。只需下载、解压缩和运行,就可以使用基于web的IDE(演示)快速创建一个简单的CRUD应用程序(如果你真的想保持简单,你甚至可以使用"新应用程序向导"(演示)来构建应用程序)。它包括自己的服务器,所以你可以像桌面应用程序一样在本地运行你的应用程序。

您可以使用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"的表。它还为"姓名"one_answers"电子邮件"字段指定了表单验证器,因此无论何时通过表单填写这些字段,条目都将被验证("姓名"不能已经在数据库中,"电子邮件"必须是有效的电子邮件地址格式)——如果验证失败,表单将显示适当的错误消息(可以自定义)。

DAL还将自动处理模式迁移,因此如果您更改表定义,数据库模式将被更新(如有必要,您可以完全关闭迁移或按表关闭迁移)。

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

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

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

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

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

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

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

如果你有任何问题,这里有一个非常有用且响应迅速的邮件列表。您还可以从一些现有的web2py应用程序中获得一些想法。

我通常使用GTK+,它有很好的Python绑定文档。

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

也就是说,如果你所需要的只是一个可信的人的数据插入,你可以使用一些已经完成的东西,比如SQLite管理器(它是一个FireFox插件)。


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

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

相关内容

  • 没有找到相关文章

最新更新