# -*- coding: utf-8 -*-
''' Wsgi-приложение. '''
import sys
import os
sys.path.insert(0, os.path.dirname(__file__))
#~ from cfg import *
#~ import tpls.base
def application(environ, start_response):
try:
# основная функция
ret = ''
# страницы
ret += '<p>страница: %s</p>' % environ['PATH_INFO']
ret += '<h2>environ</h2>'
ret += '<table>'
for k, v in environ.items():
ret += '<tr><td>%s</td><td>%s</td></tr>' % (k, v)
ret += '</table>'
# шаблонизируем
#~ ret = tpls.base.t % {'title':'Привет :)', 'body':ret}
# возвращаем результат
response_headers = [
('Content-type', 'text/html; charset=utf-8'),
('Content-Length', str(len(ret))),
]
start_response('200 OK', response_headers)
return [ret]
except '404':
response_headers = [("content-type", "text/plain")]
start_response('404 Not Found', response_headers, sys.exc_info())
return ["Page not found"]
except:
# В реальном коде различные ошибки должны обрабатываться
# различными обработчиками и не должен использоваться
# пустой except
response_headers = [("content-type", "text/plain")]
start_response('500 Error', response_headers, sys.exc_info())
return ["Error:\n======\n\n%s" % sys.exc_info() ]
#~ def application(environ, start_response):
#~ # вариант постепенной отдачи контента
#~ start_response('200 OK', [('Content-type', 'text/plain')])
#~ import time
#~ for i in xrange(100):
#~ yield str(i) + '\n'
#~ time.sleep(0.1)