我运行的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)
答案 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