Flask中的渲染模板在浏览器中返回HTML代码

时间:2017-09-15 06:04:04

标签: python html flask jinja2

这是我用Python编写的代码:

from flask import Flask, jsonify, request, render_template
from flask_restful import Api, Resource

app = Flask(__name__)
api = Api(app)

class Tracks(Resource):
    @app.route('/')
    def get(self):
        test = {
            "name": "json2html",
            "description": "Converts JSON to HTML tabular representation"
        }
        return render_template('index.html', value=test)

api.add_resource(Tracks, '/tracks') 

if __name__ == '__main__':
    app.run(port='5002')

这是我的index.html代码:

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html" charset="utf-8" />
    <title>Hello World!</title>
</head>
<body>
    <div>
         <p>
            Hello {{value|safe}}
         </p>
    </div>
</body>
</html>

问题是当我运行服务器并访问相应的url页面时,我在浏览器中获得了html代码。它看起来像这样:enter image description here

我希望它显示我通过的字典。我该如何解决?

此问题已被标记为重复,但来自给定链接的答案对我的问题没有用。我不得不创建一个新问题,这是一个解决方案:RESTful API - display returned json in html table

2 个答案:

答案 0 :(得分:0)

API的用途是编写API。如果你正在写一个普通的网站,你就不需要它了。

您应该删除Api包装器,资源继承以及对add_resoutce的调用。

答案 1 :(得分:0)

摆脱api。仅使用应用功能。你使用的烧瓶不是一个安静的api。下面是docs

的一个例子