Apache/ mod wsgi if __name__ == '__main__' 等效

Apache/ mod wsgi if __name__ == '__main__' equivalent

要为我使用 leveldb(python 数据库),我需要仅在启动服务器时加载数据库,而不是每次用户使用我的网站时加载。

之前我使用 web.py 和 if __name__ == '__main__' 语句来实现这一点。一旦我切换到 Apache,__name__ 变量总是 modwsgi_.....

有人可以为我提供一个可以与 Apache 和 modwsgi 一起使用的替代方案吗?

__name__ 的值将采用 _mod_wsgi_????? 的形式,因此使用:

if __name__.startswith('_mod_wsgi_'):
    ...

更好的是,使用一个 WSGI 脚本文件,与其他仅供 mod_wsgi 使用的文件不同。因此创建一个 app.wsgi 文件,然后从其他地方导入您的应用程序对象。然后您不需要检查并可以在全局范围内进行加载。

只要确保您在任何一种情况下都使用守护程序模式,因为在嵌入式模式下,如果更改修改时间,WSGI 脚本文件在技术上可以在进程的生命周期中加载不止一次。在守护进程模式下,这不会发生,因为更改 WSGI 脚本文件将导致整个进程关闭并重新加载。

顺便说一句,如何知道 mod_wsgi 是否为 运行 记录在: