首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用于在Python中输入sqlite数据的GUI界面

用于在Python中输入sqlite数据的GUI界面
EN

Stack Overflow用户
提问于 2011-06-29 08:55:58
回答 1查看 37.8K关注 0票数 23

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

我知道我可以放弃并获得MS访问权限,但如果可能的话,我宁愿自己写代码,这样它就可以在我的电脑上运行(*nix),而且很灵活(这样我以后就可以把它与web应用程序和我们的智能手机集成在一起)。

你的开发人员可以推荐任何接口/包/等(最好是pythonic),可以合理轻松地实现这一点吗?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2011-06-29 23:04:01

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

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

代码语言:javascript
复制
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‘的表。它还为'name‘和' email’字段指定了表单验证器,因此每当通过表单填充这些字段时,都会验证这些条目('name‘不能已经在数据库中,并且'email’必须是有效的电子邮件地址格式) --如果验证失败,表单将显示相应的错误消息(可以自定义)。

DAL还将自动处理模式migrations,因此如果您更改表定义,数据库模式将会更新(如果需要,您可以完全或逐个表地关闭迁移)。

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

代码语言:javascript
复制
from gluon.tools import Crud
crud = Crud(db)

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

代码语言:javascript
复制
def data():
    return dict(form=crud())

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

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

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

如果你有任何问题,有一个非常有用和响应式的mailing list。您还可以从一些现有的web2py applications中获得一些想法。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6514680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档