我是python2 flask的新手,我的任务是打印并保存整个HTTP请求和文件响应.我不太明白如何打印/检查请求对象,更不用说响应了.
from flask import Flask, request
app = Flask(__name__)
@app.route('/')
def hi():
print (request)
return 'oh hai'
if __name__ == '__main__':
app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)
有小费吗?每个请求/响应应该是一个文件.
Yan*_*hou 13
@app.after_request
def after(response):
# todo with response
print(response.status)
print(response.headers)
print(response.get_data())
return response
Run Code Online (Sandbox Code Playgroud)
另外,用before_request处理请求
@app.before_request
def before():
# todo with request
# e.g. print request.headers
pass
Run Code Online (Sandbox Code Playgroud)
response.get_data()可以获得响应数据.并且response是响应的整个对象.它可以获取你想要的任何东西.
from __future__ import print_function
from flask import Flask, request, g
import time
app = Flask(__name__)
@app.route('/')
def hi():
g.fn = str(time.time()) + ".txt"
with open(g.fn,'w') as f:
print ("Request headers", request.headers, file=f)
return 'oh hai'
@app.route('/foo')
def foo():
return 'foo'
@app.before_request
def before():
pass
@app.after_request
def after(response):
fn = g.get('fn', None)
if fn:
with open(fn, 'a') as f:
print("Printing response", file=f)
print(response.status, file=f)
print(response.headers, file=f)
print(response.get_data(), file=f)
return response
if __name__ == '__main__':
app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8615 次 |
| 最近记录: |