当前位置: 首页 > 知识库问答 >
问题:

Python烧瓶,如何设置内容类型

程鸿煊
2023-03-14

我正在使用Flask,并从get请求返回一个XML文件。如何将内容类型设置为xml?

例如。

@app.route('/ajax_ddl')
def ajax_ddl():
    xml = 'foo'
    header("Content-type: text/xml")
    return xml

共有3个答案

孔瑾瑜
2023-03-14

我喜欢并支持@Simon Sapin的答案。然而,我最终采取了一种稍微不同的策略,创建了自己的装饰师:

from flask import Response
from functools import wraps

def returns_xml(f):
    @wraps(f)
    def decorated_function(*args, **kwargs):
        r = f(*args, **kwargs)
        return Response(r, content_type='text/xml; charset=utf-8')
    return decorated_function

这样使用它:

@app.route('/ajax_ddl')
@returns_xml
def ajax_ddl():
    xml = 'foo'
    return xml

我觉得这样稍微舒服一点。

逄嘉禧
2023-03-14

就这么简单

x = "some data you want to return"
return x, 200, {'Content-Type': 'text/css; charset=utf-8'}

希望有帮助

更新:使用下面的方法,因为它将与Python2一起工作。x和python3。它消除了“多报头”问题(可能会发出多个重复的报头)。

from flask import Response
r = Response(response="TEST OK", status=200, mimetype="application/xml")
r.headers["Content-Type"] = "text/xml; charset=utf-8"
return r
东弘扬
2023-03-14

像这样试试:

from flask import Response
@app.route('/ajax_ddl')
def ajax_ddl():
    xml = 'foo'
    return Response(xml, mimetype='text/xml')

实际内容类型基于mimetype参数和字符集(默认为UTF-8)。

此处记录了响应(和请求)对象:http://werkzeug.pocoo.org/docs/wrappers/

 类似资料:
  • 问题内容: 我正在使用Flask,并且从get请求返回一个XML文件。如何将内容类型设置为xml? 例如 问题答案: 尝试这样: 实际的Content-Type基于mimetype参数和字符集(默认为UTF-8)。

  • 这是我的代码: 但是,当我从浏览器向服务器发出请求时,会出现以下错误: 我也尝试过这种方法,在请求之后设置响应头: 没有骰子。我得到同样的错误。有没有办法只在路由函数中设置响应头?像这样的东西是理想的: 但是我无论如何也找不到这样做。请帮忙。 编辑 如果我卷曲的url与POST请求这样: 我得到的答复是: 有什么想法吗?

  • 我遇到了一个封闭源代码应用程序的问题,该应用程序在标题中发送了不正确的内容类型。 我收到的数据为“内容类型:应用程序/x-www-form-urlencoded” 我应该将其作为“内容类型:application/json”接收 下面是烧瓶服务器代码,使用烧瓶和烧瓶Rest 发送中 作品要求数据由内容填充 工作,但请求。数据现在是空的,取而代之的是,数据已被解析,不再以不变的形式提供。 由于发送者

  • 问题内容: 我对Flask和Matplotlib非常陌生。我希望能够显示我在某些html中生成的简单图表,但是我很难弄清楚该怎么做。这是我的Python代码: 这是我的HTML: 问题答案: 您可以在Flask URL路由处理程序中即时生成图像: 然后,您需要将图像包含在HTML模板中:

  • 我已经用flask在python上制作了一个restapi(端口:5000),我正在从一个网站(端口:80)发出get和post请求。我收到了cors错误,所以我尝试在RESTAPI中为站点创建一个响应头。但是我得到了导入错误: 我已经下载了烧瓶cors模块并升级它,并确保它是在正确的路径,但它仍然不工作。 API代码:

  • 在页面上,如果用户进行了身份验证,我想发出一个post请求。为此,我有以下代码。 在打印“legal_login”之后立即发生的事情是,我得到错误消息< code>TypeError: 'Request '对象不可调用。如何使用flask发出post请求?