요청 인수/폼 데이터를 반환합니다. 작동하지 않는으로 Request.Form 또는 request.args를 사용인쇄 또는 내가 플라스크 응용 프로그램에서 WSGI 요청 로거 <a href="https://github.com/pklaus/wsgi-request-logger" rel="nofollow">https://github.com/pklaus/wsgi-request-logger</a>을 사용하고 또한 요청 매개 변수 (예. 요청과 함께 전송되는 인수)를 기록하는 데 필요하고
반환 -
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)
안녕, 회신 주셔서 감사합니다. OP를 편집하고 더 많은 코드를 추가했습니다. 더 이상 필요하다면 추가 할 것입니다. –
POST 요청의 경우 쿼리 문자열이 나에게 인수를주지 않습니다? –
양식 데이터를 제공하지 않습니다. 그러나 쿼리 문자열은 POST 요청 **에 추가로 ** 제공되어 데이터를 형성 할 수 있습니다. 정말로 POST 요청을 기록 하시겠습니까? 그들은 많은 양의 데이터를 포함 할 수 있으며 데이터의 인코딩에 대해 걱정해야합니다. 폼이'multipart/form-data'를 사용한다면, 예를 들어 POST 요청은 개행을 포함 할 수 있습니다. –