寻找解决方案,以及:
避免
>手动编写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非常简单.