我是新开发人员,我有一个带有数据的 Json 对象,我正在尝试使用 render_template 将它传递到某个页面
我已经看到了几个关于这个的答案,但由于某种原因,他们都没有为我工作
我知道 Javascript 和 Flask 之间的联系是稳固的,因为我可以在 JS 的 Onload 函数中使用 console.log("string") 但它似乎无法识别我通过渲染模板传递的任何内容
到目前为止我尝试过的事情
将 json 对象保存为变量并将其与渲染模板一起传递。
x = {"Success": True , "Msg":" lets try to get jinja to work - email {{ current_user.email }} " , "displayname":current_user.name}
t = "test"
return render_template("index.html", x=x ,t=t)
在 JS 上
document.addEventListener('DOMContentLoaded' , function () {
console.log("loaded");
const onStay = new XMLHttpRequest();
onStay.open('post' , "stay" , true);
onStay.send(null);
onStay.onload = ()=>{
console.log("i got response from flask ... onstay.onload , cheers !");
//console.log(x);
var rt = t;
console.log(rt);
var resStay = JSON.parse(x.responseText);
var tt = JSON.parse('{{ x | tojson | safe}}');
所以我也在测试我是否可以传递 jinja2 代码或 flask_login 代码实际上将它保存在某种变量中并用 JS 响应它
第二次尝试是尝试 jsonify 方法并解析它
在 python 上:
X = jsonify({"Success": True , "Msg":" lets try to get jinja to work -
email {{ current_user.email }} " , "displayname":current_user.name})
return render_template("index.html", X=X)
在 JS 端:
onStay.onload = ()=>{
var res = JSON.parse(reqSignup.responseText);
console.log("res === " , "\n" , res );
我得到的输出是
JavaScript.js:11 i got response from flask ... onstay.onload , cheers !
JavaScript.js:13 Uncaught ReferenceError: t is not defined
at XMLHttpRequest.onStay.onload (JavaScript.js:13)
onStay.onload @ JavaScript.js:13
load (async)
JavaScript.js:191 qwe@qwe.qwe
qwe
JavaScript.js:313 DATA = FormData {}