我正在寻找一种在数据库中存储
python对象的通用方法.当然我可以腌制对象,但这样我在数据库中会有二进制blob.这样我就无法搜索我的对象.此外,将它与其他应用程序放在一起似乎更容易.
所以在我的幻想中,我对象就像
class myClass
data1=1
data2='foobar'
data3=some_html_object
...
并且可以做类似的事情
mydata=myClass()
mydata.add_data(various_things)
mydata.save_to_database()
并且最终会得到一个数据库,其中包含名为data1,data2,data3的列,其中我将行中的对象属性的值存储为可搜索的文本.当然,必须进行一些初始设置.
当然,如果我可以插入我想要的任何数据库(好吧,至少不只是一个数据库)并且不会对细节感到困扰,那将是很好的.
现在我当然可以编写自己的框架来让我这样做,但是我希望这个已经由别人做过了:)
有什么建议?
最佳答案 事实上你的幻想存在!
你描述了一个叫做Active Record Pattern的东西.它通常是用Object-Relational Mapping实现的.一个常见的Python解决方案是SQLAlchemy,但Storm在某种程度上也很受欢迎:
见What are some good Python ORM solutions?
如果您正在为Web开发,Django拥有自己的ORM.