Apache/mod wsgi if uu name_u==''uuu main_u'等效

2024-05-29 11:12:59 发布

您现在位置:Python中文网/ 问答频道 /正文

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

以前我用过网页.py以及if __name__ == '__main__'语句来实现这一点。一旦我切换到Apache,__name__变量总是modwsgi_....。在

有人能为我提供一个替代方案,可以与Apache和modwsgi一起工作吗?在


Tags: 用户namepy数据库网页if网站main
1条回答
网友
1楼 · 发布于 2024-05-29 11:12:59

__name__的值的形式为_mod_wsgi_?????,因此请使用:

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

更好的是,使用一个WSGI脚本文件,它不同于仅由mod\WSGI使用的其他所有脚本文件。因此,创建一个app.wsgi文件,然后从其他地方导入应用程序对象。这样就不需要检查,可以在全局范围内执行加载。在

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

顺便说一句,如何知道mod\u wsgi是否正在运行,请参见:

相关问题 更多 >

    热门问题