0

我继承了在 apache 服务器上使用 mod_wsgi 运行的 Flask 应用程序。它没有调试设置,所以我编写了一个快速调试脚本来使用该werkzeug.run_simple()方法运行应用程序。我在将两个 mod_wsgi 选项移植到脚本时遇到问题。

WSGIPythonPath似乎是更简单的一个。我不太确定它是如何工作的,但这是否基本上将指定的路径附加到 PYTHONPATH 环境变量?

WSGIScriptAlias是更成问题的一个。在 apache 配置中,它非常标准:

WSGIScriptAlias /myapp /path/to/myapp.wsgi

app.route('/login')/myapp/loginURL 中出现。如何以/myapp与 wsgi 脚本中相同的方式为所有 URL 添加前缀WSGIScriptAlias

如果您需要更多信息,请告诉我,并提前致谢。

4

1 回答 1

1

WSGIPythonPath确实将模块附加到系统路径。根据其文档,它相当于site.addsitedir为每个条目运行(除非您正在运行 mod_wsgi 1.x,在这种情况下它相当于sys.path.append):

import site

for p in list_of_paths:
    site.addsitedir(p)

这会添加每个条目sys.path 它还会扫描目录中的.pth文件并将条目添加到它找到的任何此类文件中sys.path(这意味着鸡蛋将按预期工作)。

因为WSGIScriptAlias您可以简单地在 Flask 应用程序中设置配置变量APPLICATION_ROOTconfig

app.config["APPLICATION_ROOT"] = "/myapp"
于 2013-04-03T02:11:06.157 回答