如何使用Flask设置RSS mimetype?

时间:2016-02-27 15:46:49

标签: python flask rss

我运行的Python脚本生成RSS源的文本,然后我在Flask中使用以下行提供:

return render_template('rss.xml', mimetype='application/rss+xml')

但是,RSS validator表示我的内容仍然使用text/html mimetype。怎么样?

这是完整的方法:

@app.route('/', defaults={'path': ''})
@app.route('/<path:path>')
def serve(path):
    if path == '':
        return render_template('about.html', most_recent=request.url_root + post_list[len(post_list) - 1]['route'])
    elif path == 'feed':
        return render_template('rss.xml', mimetype='application/rss+xml')
    elif path in post_paths:
        index = post_paths.index(path)
        post = post_list[index]
        return render_template('posts/' + post['template'],
                               id=index + 1,
                               date="{0:02d}/{1:02d}/{2}".format(post['date'].month, post['date'].day,
                                                                 post['date'].year),
                               title=post['title'],
                               most_recent=request.url_root + post_list[len(post_list) - 1]['route']
                               )
    elif path in raws_list:
        return render_template('visualizations/' + path)
    else:
        abort(404)

1 个答案:

答案 0 :(得分:3)

您需要在响应对象上设置标头。您可以将render_template的结果传递给Flask的make_response并将其设置在那里。

from flask import make_response

# snip

rss_xml = render_template('rss.xml')
response = make_response(rss_xml)
response.headers['Content-Type'] = 'application/rss+xml'
return response