我对 Python 和 Python Web 应用程序开发比较陌生。目前我正在使用 mod_wsgi 在 Python 中创建一个 hello world 应用程序
这是我的配置。
阿帕奇配置
<VirtualHost *:80>
ServerName mysite.com
DocumentRoot /var/www/mysite
WSGIDaemonProcess mysite threads=5
WSGIScriptAlias / /var/www/mysite/mysite.wsgi
WSGIProcessGroup mysite
<Directory /var/www/mysite>
WSGIProcessGroup mysite
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
我的网站.wsgi
import os
import sys
path='/var/www/mysite'
if path not in sys.path:
sys.path.append(path)
import mysite.app
application = mysite.app.App()
应用程序.py
import mysite.log as log
logger = log.custom_logger('root')
logger.debug('I am included only once')
class App:
"""
This Class is responsible
"""
def __init__(self):
logger.debug('I will be called only after apache restart')
"""
WSGI module will call this function by default
"""
def __call__(self, environ, start_response):
logger.debug('I will be invoked for every request')
# Do some stuff here
start_response(response_state, response_header)
return [response]
问题:我看不到里面的日志和里面__init__
的日志app.py
。
输出
重启apache后第一次运行
调试 - 应用程序 - 我只包含一次
调试 - 应用程序 - 我只会在 apache 重启后被调用
DEBUG - 应用程序 - 我将为每个请求调用
当我在浏览器中刷新页面时
DEBUG - 应用程序 - 我将为每个请求调用
怎么了?我知道这__init__
不是构造函数,应用程序对象在某处缓存?来龙去脉是什么。