Python中sqlite数据输入的GUI界面

Ger*_*ldo 20 python sqlite user-interface ms-access

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

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

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

谢谢!

Ant*_*ony 9

由于您对将来与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()))
Run Code Online (Sandbox Code Playgroud)

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

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

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

from gluon.tools import Crud
crud = Crud(db)
Run Code Online (Sandbox Code Playgroud)

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

def data():
    return dict(form=crud())
Run Code Online (Sandbox Code Playgroud)

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

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

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

如果您有任何疑问,可以使用非常有用且反应灵敏的邮件列表.您也可以从一些现有的web2py应用程序中获得一些想法.


Mis*_*Tom 5

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

使用Firefox扩展来管理数据库可能听起来很奇怪,但这只是利用Firefox内置的GUI框架来制作出色的SQLite管理应用程序。


mac*_*mac 3

我通常使用 GTK+,它有详细记录的Python 绑定

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

也就是说,如果您真正需要的只是来自受信任的人的数据插入,您可以使用已经完成的功能,例如SQLite 管理器(它是一个 FireFox 插件)。


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

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