Pickle to file而不是使用数据库

Six*_*its 7 python mysql pickle

我正在python中编写一个基本的会员Web应用程序.

完全放弃数据库并简单地将python字典挑选到文件(http://docs.python.org/2/library/pickle.html)总是不好的做法吗?该计划永远不应该处理超过ca. 500个成员,并且只会保留关于每个成员的几个字段,所以我不认为缩放是一个问题.由于这个应用程序可能也需要在本地运行,因此如果事情保持尽可能简单,就可以更容易地在各种机器上运行.

所以选项是设置一个mysql数据库,或简单地pickle到一个文件.我更喜欢第二,但想知道这是不是很糟糕.

Len*_*bro 12

不,如果您可以将所有数据保存在内存中,则不需要数据库,只需将所有数据进行酸洗即可.

酸洗的显着缺点是它不安全,有人可以用其他东西替换你的数据,包括可执行代码,而且它只是Python.使用数据库,您通常还会同时更新数据并写入磁盘,而您必须记住将数据腌制并将其保存到磁盘.由于这需要时间,因此当您一次写入所有数据时,通常只有在退出时才会执行,因此崩溃意味着您将丢失所有更改.

虽然有一个中间地带:sqlite.它是Python中包含的一个轻巧,简单的SQL数据库(自Python 2.5起),因此您无需安装任何额外的软件即可使用它.这通常是一种快速解决方案.由于SQLAlcehmey具有SQLite支持,因此它也意味着您甚至可以将SQLAlchemy与SQLite一起用作默认数据库,从而为更严重的数据库提供"升级路径".