Flask:根据Content-Type标头获取请求参数

时间:2012-12-25 07:57:00

标签: python rest flask

根据请求的Content-Type标头处理请求正文的正确方法是什么?

我需要实现支持XML,JSON和表单编码请求参数的RESTful服务,但我似乎无法找到一种提取请求参数的简洁方法。

这是我应该使用中间件的吗?我是否需要扩展Request对象?

我还没有找到任何可以执行此操作的软件包,而且在烧瓶中创建RESTful服务似乎是一项非常常见的任务。

2 个答案:

答案 0 :(得分:2)

您可能需要Accept标头,因为Content-Type用于响应。这里有三种选择:

  1. 按照Handling Accept Headers摘录。
  2. 中的说明自行构建
  3. 使用Flask-RESTful扩展程序(请参阅文档中的Content Negotiation部分)。
  4. 使用专门用于处理此案例的Flask-Pushrod扩展程序。

答案 1 :(得分:0)

您可以使用@app.before_request,如图所示here。一旦你完成了规范化请求参数的事情,你可以save them to g,像这样:

from flask import g
from flask import request
...


@app.before_request
def before_request():
    # normalize params based on Content-Type
    g.params = normalized_params