Python Pickle到文件而不是使用数据库

Python Pickle到文件而不是使用数据库,python,mysql,pickle,Python,Mysql,Pickle,我正在用python编写一个基本的会员web应用程序 完全放弃数据库而简单地将python字典pickle到一个文件中,这是否总是一种糟糕的做法(http://docs.python.org/2/library/pickle.html)? 该程序不应该处理超过约500个成员,并且只保留关于每个成员的几个字段,因此我不认为扩展是一个问题。由于这个应用程序可能也需要在本地运行,如果尽可能简单的话,它更容易在各种机器上运行 因此,选项是设置mysql数据库,或者简单地pickle到一个文件。我更喜欢第

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

完全放弃数据库而简单地将python字典pickle到一个文件中,这是否总是一种糟糕的做法(http://docs.python.org/2/library/pickle.html)? 该程序不应该处理超过约500个成员,并且只保留关于每个成员的几个字段,因此我不认为扩展是一个问题。由于这个应用程序可能也需要在本地运行,如果尽可能简单的话,它更容易在各种机器上运行


因此,选项是设置mysql数据库,或者简单地pickle到一个文件。我更喜欢第二个,但我想知道这是不是一个糟糕的主意。

不,如果你能把所有的数据都保存在内存中,数据库是不必要的,只要把所有的数据都整理一下就行了

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


不过,有一个中间立场:sqlite。它是一个包含在Python中的轻量级、简单的SQL数据库(自Python 2.5以来),因此您不必安装任何额外的软件来使用它。这通常是一个快速的解决方案。由于SQLAlcehmey支持SQLite,这也意味着您甚至可以将SQLAlchemy与SQLite一起用作默认数据库,从而为更重要的数据库提供“升级路径”。

Perfect。谢谢正是我想要的信息。