python – 在Web应用程序中处理类似源数据文件的最佳方法是什么?

我有大约30 MB的文本数据,这是我在我的Web应用程序中使用的算法的核心.

一方面,数据是算法的一部分,对数据的更改可能导致整个算法失败.这就是我将数据保存在源代码管理中的文本文件中的原因,并且所有更改都是自动测试的(预提交).我目前有很好的控制水平.在我们生成更多Web实例时将数据与源一起分发是一个非问题,因为它与源一起标记.我目前有这些问题:

>我经常开发特殊工具来操纵文件,复制数据库访问工具功能
>我想给非开发人员控制这些数据的Web访问权限.

另一方面,它是数据,并且它“属于”数据库中.我希望我可以把它放在一个数据库中,但后来我会遇到这些问题:

>如何将此数据库同步到源?版本包含代码和数据.
>当我生成Web服务器的新实例时,如何将其与数据一起发送?
>如何管理数据的预提交测试?

我迄今为止所考虑的事情:

> Sqlite(不解决非开发人员访问)
>构建精心制作的预生产数据库,数据用户将编辑该数据库以创建“真实”数据库的“补丁”,开发人员将接受,测试和提交.听起来很复杂.
我还没有完全设计这个,我当然希望我在这里重新发明轮子,一些SO用户会告诉我我的方式的错误……

顺便说一句:我也有一个“常规”数据库,其中的东西不是算法数据.
BTW2:我添加了Python标签,因为我目前使用的是Python,Django,Apache和Nginx,Linux(以及一些蹩脚的开发人员使用Windows).

提前致谢!

UPDATE

一些数据示例(算法是自然语言处理的东西):

>世界城市及其替代名称
>货币名称
>酒店坐标

这个列表一直在继续,但想象一下,如果有人改变了教我罗马在意大利的坐标,或者有人添加“浪漫”作为替代名字对于拉斯维加斯(是的,这个例子很蹩脚,但我希望你得到漂移).

最佳答案
好的,这是一个想法:

>按现在的方式发送所有数据.
>让安装脚本将其安装在适当的数据库中.
>让用户修改此数据库,并为他们提供一个“恢复原始”按钮,只需从文本文件重新安装即可.

或者,这条路线可能更容易,尤其是升级安装时:

>按现在的方式发送所有数据.
>让用户修改数据并将修改后的版本存储在适当的数据库中.
>让代码查看数据库,如果找不到合适的数据,则返回文本文件.不要让代码以任何方式修改文本文件.

在任何一种情况下,您都可以保留当前的测试代码;您只需添加测试以确保数据库正确覆盖文本文件.

转载注明原文:python – 在Web应用程序中处理类似源数据文件的最佳方法是什么? - 代码日志