【问题标题】:How to setup mod_python configuration variables?如何设置 mod_python 配置变量?
【发布时间】:2009-08-03 22:44:52
【问题描述】:

我正在使用 mod_python 运行 Python 服务器,并且在配置变量方面遇到了一些问题。这实际上是两个问题合而为一,因为我认为它们高度相关:

  1. 我需要一种方法来配置运行时在 Python 中可用的变量。我目前只有一个模块,它设置了一些我导入到其他模块中的名称-值对,但我最近在阅读PythonOption,想知道使用它会获得什么优势。

  2. 我需要一种在服务器上存储状态的方法。我可以访问限制为每天运行 X 次的 API,一旦达到该限制,我需要恢复到我的(较少的)代码。我想知道如何跟踪一天内运行查询的次数。

我考虑过使用文件或数据库,但我担心让每个人都尝试同时访问同一个文件或行会减慢请求速度。有没有更好的方法在 mod_python 中进行设置?

【问题讨论】:

  • 为什么选择 mod_python?为什么不 mod_wsgi?为什么没有框架?为什么不使用 Django、Pylons 或 TurboGears?
  • 这会是“在您更改整个服务器设置之前我不会回答您的问题”交易之一吗?
  • @Daniel Lew:我在问一个问题,以便了解您的情况。您选择了一些难以使用的技术。您描述的问题在 Django、Pylons 和 TurboGears 中已解决(完全解决)。在我发表评论之前,我想知道您为什么不使用已知的有效解决方案。
  • 答案是,因为我开始的时候并不知道;这是我第一次涉足 Python 服务器。不幸的是,我现在坚持我所拥有的,至少在短期内是这样。
  • @Daniel Lew:转换可能比试图挽救你拥有的东西更便宜。

标签: python configuration mod-python


【解决方案1】:
  1. 使用PythonOption 可让您配置可能需要从服务器更改为服务器的内容。不过,我不会过多地使用它,因为弄乱 Apache 配置指令是一种痛苦(而且它需要重新加载服务器)。您可能会考虑使用PythonOption 来指定包含实际配置变量的设置文件的名称。 (或者您可以像大多数框架一样,在标准位置查找设置文件)

  2. 如果您真的不想考虑文件或数据库,请尝试memcached。它基本上是一个非常简单的数据库(仅通过按键获取、设置和清除),完全存储在 RAM 中,因此速度非常快。但是,如果您只需要存储一个计数器变量,您可能只需将其作为全局变量粘贴到 Python 模块中,除非您担心在模块重新加载时计数器会被重置。

    李>

【讨论】:

    【解决方案2】:
    1. 我需要一种方法来配置运行时在 Python 中可用的变量。

      做 Django 做的事。使用 Python 赋值语句的简单可导入脚本。

    2. 我需要一种在服务器上存储状态的方法。

      做 Django 做的事。使用 SQLite3。

    另外,请阅读PEP 333 并构建您的应用程序组件以支持 WSGI。这应该是一个相对较小的修订,以使现有代码具有正确的 WSGI 结构。

    当您从 mod_python 切换到 mod_wsgi 时,您可以找到许多组件来为您做这些事情并减少您编写的代码量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-27
      • 2016-11-26
      相关资源
      最近更新 更多