【发布时间】:2016-11-18 05:14:03
【问题描述】:
我在烧瓶应用程序中使用 wsgi-request-logger https://github.com/pklaus/wsgi-request-logger 并需要它来记录请求参数(即随请求发送的参数)。
使用 request.form 或 request.args 不起作用并返回 -
RuntimeError:在请求上下文之外工作。
val['params'] = url_decode(environ.get('QUERY_STRING', ''))
print val['params']
这不起作用并返回 MultiDict([]) (在中间件和 views.py 文件中尝试过,两种情况都返回相同的内容)。
if environ['REQUEST_METHOD'] == 'POST':
print parse_form_data(environ)[1]
这也返回 MultiDict[]。
我没有得到我在这里缺少的东西。帮助会很棒。
调用中间件的代码。我稍微编辑了中间件并将文件名更改为 request_logger_wsgi,因为我现在正在使用本地克隆对其进行测试。
#!flask/bin/python
from app import app
from request_logger_wsgi import WSGILogger, ApacheFormatters
from logging.handlers import TimedRotatingFileHandler
def application(environ, start_response):
response_body = 'The request method was %s' % environ['REQUEST_METHOD']
response_body = response_body.encode('utf-8')
response_headers = [('Content-Type', 'text/plain'),
('Content-Length', str(len(response_body)))]
start_response('200 OK', response_headers)
print response_body, "231321"
return [response_body]
handlers = [ TimedRotatingFileHandler('access.log', 'd', 7) , ]
app.wsgi_app = WSGILogger(app.wsgi_app, handlers, ApacheFormatters.format_log)
app.run(debug=True)
【问题讨论】:
标签: python python-2.7 logging flask werkzeug