我對Python和Python web應用程序開發相對較新。目前我正在使用mod_wsgi在Python中創建一個hello world應用程序Python mod_wsgi應用程序的奇怪行爲
這是我的配置。
Apache配置
<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>
mysite.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()
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的
DEBUG後
第一次運行,我只包含一次
DEBUG - 應用程序 - 我只會之後阿帕奇重啓而被稱爲
調試 - 應用程序 - 我將爲每個請求調用
當我刷新瀏覽器
調試頁面 - 應用程序 - 我會被調用爲每個請求
這是怎麼回事?我知道__init__
不是構造函數,應用程序對象是在某處緩存嗎?發生了什麼。
只是指着,你注意到類名是應用程序,你正在實例化APP? – 2013-05-08 04:44:57
謝謝@Bibhas,我已經更新 – Maddy 2013-05-08 04:47:32