我正在创建一个简单的sqlite数据库,用于存储一些非敏感的客户端信息。我非常熟悉python+sqlite,我更喜欢在这个项目上坚持这个组合。我想创建一个简单的GUI界面,用于数据输入和数据库搜索…这与MS Access提供的功能非常相似。我希望我的妻子能够轻松地输入/搜索数据,所以PHPmyadmin风格的东西是不可能的。
我知道我可以放弃并获得MS访问权限,但如果可能的话,我宁愿自己写代码,这样它就可以在我的电脑上运行(*nix),而且很灵活(这样我以后就可以把它与web应用程序和我们的智能手机集成在一起)。
你的开发人员可以推荐任何接口/包/等(最好是pythonic),可以合理轻松地实现这一点吗?
谢谢!
发布于 2011-06-29 23:04:01
由于您对将来与web应用程序的集成感兴趣,因此可以考虑使用Python web框架并在本地机器上运行该应用程序,并使用web浏览器作为界面。在这种情况下,一个简单的选择是web2py。只需download、解压缩并运行,您就可以使用基于web的集成开发环境(demo)非常快速地创建一个简单的CRUD应用程序(如果您真的想保持简单,您甚至可以使用“新建应用程序向导”(demo)来构建该应用程序)。它包括自己的服务器,所以你可以在本地运行你的应用,就像桌面应用一样。
您可以使用SQLite (数据库抽象层)来定义和创建SQLite数据库和表(无需编写任何web2py )。例如:
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系统来处理所有的数据输入和搜索。只需包含这两行(实际上,它们已经包含在“欢迎”脚手架应用程序中):
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或下载Python Windows二进制文件,而不是源代码版本-- web2py二进制文件包含自己的Python解释器)。
如果你有任何问题,有一个非常有用和响应式的mailing list。您还可以从一些现有的web2py applications中获得一些想法。
https://stackoverflow.com/questions/6514680
复制相似问题