6

我一直在玩这个想法很长一段时间,但还没有看到任何关于人们这样做的信息。我有一个小型网站项目,需要在其中加载和修改 1 个对象。这个对象非常简单,不应该超过几 kb。pickle为什么不使用和/或shelve保存这些数据并加载它,而不是为这么少量的数据运行数据库呢?我计划在项目中使用像 Bottle 或 Flask 这样的微型 Web 框架。

是否有任何理由不使用此方法加载数据?它只会在 Apache 启动时加载 pickle 文件,所以我认为速度不会受到影响(比查询数据库快)。

感谢您的任何意见!

4

3 回答 3

3

我不会直接将腌制字符串写入文件。有太多的低级细节需要担心。查看DurusZODBFriendFeed 的这篇关于在 MySQL 中存储 Python 对象的帖子。

但是,不要丢弃关系数据库,它们开箱即用(即使对于简单的项目)会给您带来很多好处。

于 2010-09-10T02:44:59.167 回答
2

没有理由不能通过标准的 Python pickleshelve模块实现对象持久性。只需确保您的物品干净安全地腌制即可。如果您的网站超出当前范围,可扩展性可能会成为一个问题,但在此之前,您的想法应该可以正常工作。如果那一天到来,下一个明显的步骤是考虑使用 Python 的优秀SQLite 模块,该模块与该语言的最新版本一起预先打包。

于 2010-09-10T04:07:44.603 回答
1

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

于 2010-09-10T19:42:24.663 回答