我正在使用使用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的回复?希望我很清楚。感谢