Python 什么';在web应用程序中处理源类数据文件的最佳方法是什么?
我有大约30MB的文本数据,这是我在web应用程序中使用的算法的核心 一方面,数据是算法的一部分,对数据的更改可能导致整个算法失败。这就是为什么我将数据保存在源代码管理中的文本文件中,并且所有更改都是自动测试的(预提交)。我现在有很好的控制能力。在生成更多web实例时,将数据与源一起分发不是问题,因为它与源一起标记。我目前有以下问题:Python 什么';在web应用程序中处理源类数据文件的最佳方法是什么?,python,Python,我有大约30MB的文本数据,这是我在web应用程序中使用的算法的核心 一方面,数据是算法的一部分,对数据的更改可能导致整个算法失败。这就是为什么我将数据保存在源代码管理中的文本文件中,并且所有更改都是自动测试的(预提交)。我现在有很好的控制能力。在生成更多web实例时,将数据与源一起分发不是问题,因为它与源一起标记。我目前有以下问题: 我经常开发特殊的工具来操作文件,复制数据库访问工具的功能 我想让非开发者控制的网络访问这些数据 另一方面,它是数据,它“属于”数据库。我希望我能将其放入数据库
- 我经常开发特殊的工具来操作文件,复制数据库访问工具的功能
- 我想让非开发者控制的网络访问这些数据
- 如何将此数据库同步到源?发布包含代码和数据
- 在生成web服务器的新实例时,如何将其与数据一起发送
- 如何管理数据的提交前测试李>
- Sqlite(不解决非开发人员访问)
- 构建一个精心制作的预生产数据库,用户将编辑该数据库,为“真实”数据库创建“补丁”,开发人员将接受、测试和提交该数据库。听起来很复杂。
我还没有完全设计这个,我当然希望我在这里重新发明轮子,一些用户会告诉我我的方法的错误
BTW2:我添加了Python标记,因为我目前使用Python、Django、Apache和Nginx、Linux(一些lame开发人员使用Windows) 提前谢谢 更新 数据的一些例子(算法是自然语言处理的东西):
- 世界城市及其替代名称
- 货币名称
- 酒店坐标
在这两种情况下,您都可以保留当前的测试代码;您只需添加测试,确保数据库正确覆盖文本文件。我将其称为资源,它是应用程序依赖的数据,而不是应用程序管理的数据。图像、CSS和模板是类似的资源,您可以控制它们的版本 在这种情况下,您可以将数据拆分为单独的包。在python发行版中,使用应用程序所依赖的单独的egg;pip和buildout等包部署工具将自动拉入依赖项。通过这种方式,您可以独立地对其进行版本设置,还可以使用其他依赖于它的工具,等等 最后,选择一种可以由源代码管理系统有效管理的格式。这意味着一种文本格式。您可以在启动时开始解析该格式,但通过将其保持为文本,您可以通过对其进行更改来正确管理它。这可以是启动时加载到sqlite数据库中的SQL转储(CREATETABLE和INSERT语句),也可以是其他一些基于python的结构。您还可以选择按需加载数据,根据需要将其缓存在内存中
看看时区数据库,它是另一个资源项目如何管理这些结构的一个很好的例子。Ooh,我想我没有正确解释。很抱歉这个算法数据实际上是数据(不是代码)。我将在问题主体中添加一些这样的例子。@Tal Weiss:这改变了一切。重写我的答案。