Jon*_*Cox 16 python download werkzeug http-headers flask
我正在使用使用Python的Flask(基于Werkzeug).
用户可以下载文件,我正在使用send_from_directory-function.
但是,实际下载文件时,content-length不会设置HTTP标头.因此用户不知道要下载的文件有多大.
我可以os.path.getsize(FILE_LOCATION)在Python 中使用来获取文件大小(以字节为单位),但无法找到content-length在Flask中设置标头的方法.
有任何想法吗?
rab*_*ben 38
从版本0.6开始,将标头添加到响应对象的规范方法是通过该make_response方法(请参阅Flask文档).
def index():
response = make_response(render_template('index.html', foo=42))
response.headers['X-Parachutes'] = 'parachutes are cool'
return response
Run Code Online (Sandbox Code Playgroud)
Cyr*_* N. 38
我也需要这个,但是对于每个请求,所以这就是我所做的(基于doc):
@app.after_request
def after_request(response):
response.headers.add('Access-Control-Allow-Origin', '*')
return response
Run Code Online (Sandbox Code Playgroud)
Sea*_*ira 12
我相信你会做这样的事情(未经测试):
from flask import Response
response = Response()
response.headers.add('content-length', str(os.path.getsize(FILE_LOCATION)))
Run Code Online (Sandbox Code Playgroud)
请参阅:Werkzug的Headers对象和Flask的Response对象.
| 归档时间: |
|
| 查看次数: |
21897 次 |
| 最近记录: |