我正在使用Flask,并从get请求返回一个XML文件。如何将内容类型设置为xml?
例如。
@app.route('/ajax_ddl')
def ajax_ddl():
xml = 'foo'
header("Content-type: text/xml")
return xml
我喜欢并支持@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
我觉得这样稍微舒服一点。
就这么简单
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
像这样试试:
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请求?