我已经在玩这个想法了一段时间了,但还没有看到有关这样做的任何信息。我有一个小型网站项目,需要加载和修改1个对象。这个对象很简单,不应超过几个kb。而不是为少量数据运行DB,为什么不只是使用 pickle 和/或 shelve 保存此数据并加载它?我计划在项目中使用微型网络框架(例如瓶子或烧瓶)。

是否有任何理由不使用此方法加载数据?它只会在Apache启动时加载腌制文件,因此我认为不会实现速度(比查询数据库更快)。

感谢您的任何输入!

有帮助吗?

解决方案

没有理由为什么您不能通过标准Python实现对象持久性 泡菜 或者 搁置 模块。只需确保您的对象清洁,可牢固地挑选即可。如果您的网站扩展到您当前的范围之外,则可能会成为关注的问题,但是直到那时,您的想法应该可以正常工作。如果那天到来,下一个明显的步骤是考虑使用Python的优秀 sqlite 模块 该语言的最新版本预先包装。

其他提示

我不会将腌制的字符串直接写入文件。有太多的低级细节需要担心。查看 杜鲁士, ZODB, , 或者 这篇来自Friendfeed的帖子 关于将python对象存储在mysql中。

但是,不要丢弃关系数据库,它们会为您提供大量的爆炸式(即使对于简单的项目)。

除了您已经意识到的并发问题外,您还必须确保文件始终处于一致的状态。例如,如果服务器在编写文件的中间崩溃,那会发生什么?如果您走这条路线,则需要考虑并实现解决方案。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top