简单/智能,Pythonic数据库解决方案,可以使用Python类型语法吗? (键/值字典,数组,可能是有序字典)

寻找解决方案,以及:

避免

>手动编写SQL查询(Python可能更多OO不通过DSL字符串)
>将非Python数据类型用于所需的模型定义
>使用新类型而不是完美的原生Python类型

>使用Python对象
>使用面向对象和基于密钥的检索和创建
>快速原型设计
>没有SQL表
>模型/类型推断或没有模型
>输入更少的行和字符

轻松输出和输出JSON,可能是XML甚至是协议缓冲区.

我做网络,桌面和移动软件开发,因此越便携越好.

python
>> from someAmazingDB import *

>> db.taskList = []

>> db['taskList'].append({title:'Beat old sql interfaces','done':False})
>> db.taskList.append({title:'Illustrate different syntax modes','done':True})

#at this point it should autosave
#we should be able to reload the console and access like:
python
>> from someAmazingDB import *
>> print 'Done tasks'
>> for task in db.taskList:
>>     if task.done:
>>         print task
'Illustrate different syntax modes'

这是一个挑战:上面的代码应该只需要很少的修改或思考.就像一个不同的导入语句,也许更多,但Django模型和SQLAlchemy不要削减它.

我正在寻找更多有趣的图书馆建议而不仅仅是“尝试搁置”或“使用泡菜”

我并不反对将Python类用于模型,但它们应该非常直接,不像你用Django和类似的东西.

最佳答案
我今天早些时候正在做类似这样的事情.目前还没有自述或足够的测试,但是…… http://github.com/mikeboers/LiteMap/blob/master/litemap.py

LiteMap类的行为与内置字典非常相似,但它仍然存在于SQLite数据库中.您没有说明您感兴趣的特定数据库,但这几乎可以简单地修改为任何后端.

它也不跟踪可变类的更改(例如,在示例中附加到列表中),但API非常简单.

转载注明原文:简单/智能,Pythonic数据库解决方案,可以使用Python类型语法吗? (键/值字典,数组,可能是有序字典) - 代码日志