Flask模板渲染并返回

时间:2017-11-06 16:15:21

标签: python flask

我正在使用使用flask的简单模板渲染。与此同时,我使用flask作为聊天机器人的终点。

来自main.py的摘录:

from flask import Flask, request, redirect, render_template, make_response
import urllib
import json

app = Flask(__name__)
app.debug = True

@app.route("/", methods=['POST'])
def webhook():
  req = request.get_json(silent=True, force=True)

  res = makeWebhookResult(req)

  res = json.dumps(res, indent=4)
  r = make_response(res)
  r.headers['Content-Type'] = 'application/json'
  return r

def makeWebhookResult(req):
  url_prod="picture.jpg"
  if req.get("result").get("action") == "action.prod":
    result = req.get("result")
    parameters = result.get("parameters")
    prod = parameters.get("products")
    speech = "what I want to say is...  " + prod
    render_template('hello.html', name=url_prod)
  else:
    return {}

  return {
    "speech": speech,
    "displayText": speech,
    "source": "apiai-demo"
  }

我的hello.html:

<body>
  <iframe
  width="350"
  height="430"
  src="https://xxxxxx"
</iframe>
<img src={{name}}>
</body>

我的问题是,对于端点,我需要返回json数据,同时我想更新html文件的模板。由于render_template不在return函数中,因此直接调用render_template(&#39; hello.html&#39;,name = url_pic1)不起作用。 如何调用render_template并同时允许flask返回json的回复?希望我很清楚。感谢

0 个答案:

没有答案