You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask中如何返回Retry-After响应头?

在Flask中返回503错误时添加Retry-After响应头

你可以通过两种方式实现需求:

方法一:直接返回响应头字典

这是最简洁的实现方式,直接在返回元组中加入Retry-After头的键值对:

from flask import Flask, send_from_directory, Response
import datetime

@app.route('/x/<string:file_name>')
def make_file(file_name):
    if creation_of_file(file_name) == 'success':
        return send_from_directory('files', file_name)
    else:
        # 直接指定Retry-After为300秒
        return 'File not ready. Try again later', 503, {'Retry-After': '300'}

方法二:使用Response实例的retry_after方法

你之前的代码错误在于直接调用Response.retry_after类方法,实际上它是实例方法,需要先创建Response对象,再调用该方法设置响应头:

from flask import Flask, send_from_directory, Response
import datetime

@app.route('/x/<string:file_name>')
def make_file(file_name):
    if creation_of_file(file_name) == 'success':
        return send_from_directory('files', file_name)
    else:
        resp = Response('File not ready. Try again later', status=503)
        # 使用timedelta指定重试间隔
        resp.retry_after(datetime.timedelta(seconds=300))
        return resp

retry_after方法支持两种参数类型:

  • datetime.timedelta:设置从当前时间开始的等待秒数
  • datetime.datetime:设置具体的重试时间点(会自动格式化为HTTP标准日期格式)

内容的提问来源于stack exchange,提问作者Nanno

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 06:27:10