【问题标题】:Render Template in Flask returns HTML code in browser [duplicate]Flask中的渲染模板在浏览器中返回HTML代码[重复]
【发布时间】:2017-09-15 06:04:04
【问题描述】:

这是我用 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 代码。它看起来像这样:

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

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

【问题讨论】:

  • 您从哪里导入 Flask 和 Api?
  • 嗯,您正在使用Api 对象,该对象旨在用于创建 API(应用程序编程接口),因此得名。 API 是一个旨在供其他程序使用的接口,因此毫无疑问,您从中获得的结果并不完全是人类可读的。为什么不使用Flask app 对象进行人类可读的输出?
  • 这是我的导入:from flask import Flask, jsonify, request, render_template from flask_restful import Api, Resource from sqlalchemy import create_engine
  • 其实我是flask新手,不知道有什么其他可能的写法

标签: python html flask jinja2


【解决方案1】:

API 的内容是用于编写 API。如果您正在编写一个普通的网站,则不需要它。

您应该删除Api 包装器、资源继承和对add_resoutce 的调用。

【讨论】:

  • 当我按照你说的做时,我无法像这样访问我的页面:http://localhost:5002/tracks
  • 我正在尝试做一个休息 API.. 例如我想访问适当的 url 页面并显示在数据库中的表数据中。
  • 那你为什么要渲染一个模板?
  • 昨天我刚刚遇到了一个使用渲染模板的解决方案,我认为它可以在我的 api 中工作..
【解决方案2】:

摆脱 api。仅使用应用程序功能。你使用烧瓶不是一个宁静的 api。这是来自docs的示例

【讨论】:

  • 实际上,我必须是一个休息 api.. 可能渲染模板应该替换为不同的东西.. 但我是烧瓶新手,不知道任何其他解决方案.. 如上所述我想访问适当的 url 页面并显示在数据库中的表数据中..
  • 你应该指定你的api返回什么样的数据?是json还是什么?
  • 我的 api 正在返回 json
  • 返回应该是这样的 ` def get(self): test = { "name": "json2html", "description": "Converts JSON to HTML tabular representation" } return test
  • 阅读文档以正确应用您的代码 :) here
猜你喜欢
  • 2013-10-19
  • 1970-01-01
  • 2018-11-04
  • 2023-01-01
  • 2012-11-28
  • 1970-01-01
  • 1970-01-01
  • 2021-11-03
  • 2021-05-07
相关资源
最近更新 更多