我在一个flask应用程序中使用wsgi请求记录器https://github.com/pklaus/wsgi-request-logger,需要它同时记录请求参数(即将随请求一起发送的参数)。在
使用请求.窗体或者请求.args不工作,然后返回-
RuntimeError:在请求上下文之外工作。在
val['params'] = url_decode(environ.get('QUERY_STRING', ''))
print val['params']
这不起作用,并返回MultiDict([])(在中间件和视图.py文件,对于这两种情况都返回相同的结果)。在
if environ['REQUEST_METHOD'] == 'POST':
print parse_form_data(environ)[1]
这也返回MultiDict[]。在
我不知道我错过了什么。帮个忙就好了。在
调用中间件的代码。我编辑了一下中间件,并将文件名改为request_logger_wsgi,因为我现在正在用本地克隆测试它。在
^{pr2}$
你应该发布更多的应用程序代码,否则很难帮上忙。在
在WSGI层中不能使用Flask的
request
对象。wsgi-request-logger
在Flask之前运行,这就是为什么还没有请求上下文。在其他代码可能在模块中运行,并且使用了
os.environ
,这与WSGI环境不同。在您实际上要做的是创建一个自定义格式化程序并告诉
然后设置格式化程序:
^{pr2}$不过,最好是重用其中一个Apache格式化程序:
此格式化程序将使用NCSA格式并附加查询字符串。可能有更好的日志消息格式,但这应该让您开始。在
相关问题 更多 >
编程相关推荐