Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建Python Pickle支持的网站有什么问题吗?_Python_Pickle_Shelve_Flask - Fatal编程技术网

创建Python Pickle支持的网站有什么问题吗?

创建Python Pickle支持的网站有什么问题吗?,python,pickle,shelve,flask,Python,Pickle,Shelve,Flask,我一直在玩弄这个想法有一段时间了,但还没有看到任何关于人们这样做的信息。我有一个小的网站项目,我需要加载和修改1个对象。这个对象非常简单,不应该超过几kb。与其为这少量数据运行DB,为什么不直接使用pickle和/或shelve保存并加载数据呢?我计划在这个项目中使用一个微网络框架,比如瓶子或烧瓶 是否有任何理由不使用此方法加载数据?它只会在Apache启动时加载pickle文件,所以我认为不会影响速度(比查询数据库快) 谢谢你的意见 我不会直接将一个腌渍过的字符串写入文件。有太多的低级细节需要

我一直在玩弄这个想法有一段时间了,但还没有看到任何关于人们这样做的信息。我有一个小的网站项目,我需要加载和修改1个对象。这个对象非常简单,不应该超过几kb。与其为这少量数据运行DB,为什么不直接使用
pickle
和/或
shelve
保存并加载数据呢?我计划在这个项目中使用一个微网络框架,比如瓶子或烧瓶

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


谢谢你的意见

我不会直接将一个腌渍过的字符串写入文件。有太多的低级细节需要担心。查看或了解如何在MySQL中存储Python对象


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

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

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

为什么要用泡菜?为什么不是简单的纯文本?为什么不使用对象的Python源代码?为什么要限制自己对对象进行酸洗?是否有任何理由不使用类似SQLite的东西?@S.Lott该对象包含子对象,其中包含一些datetime对象。如果必要的话,我可以用明文。网站上有一个页面可以插入一些新数据,所以它不能在源代码中。我试图保持网站简单,没有数据库,如果我不需要一个。请更新与其他事实的问题。请尽可能使问题完整和正确。谢谢链接。如果我要使用任何数据库,它将是MongoDB。我没有想到框架会运行多个python进程,并且在修改某些内容时无法访问同一对象。它必须触发某种标志,并让每个进程重新加载pickle文件?还有什么其他“需要担心的低级细节”?谢谢像MongoDB这样的东西将比SQL更容易从Pickle进行转换。是的,用Pickle启动并运行它并没有什么错。谁知道呢,也许泡菜可以解决你的问题。如果不是,当数据库出现问题时,您总是可以切换到数据库。保持简单,直到它需要更多。@David M我以前使用过很多SQL,所以两者都不是问题,我会选择使用MongoDB来获得更多的NoSQL经验:)我并不是说SQL很难,只是MongoDB等人更像pickle。关于SQL与NoSQL的比较:对于这场争论没有通用的正确答案。除了最极端的用例之外,所有这些都会转化为个人偏好和宗教信仰。最好尝试一下,并从仅从经验中获得的更广泛的观点中获益。