Python JSON到Javascript
使用python中的这行代码,我创建了包含多条消息的JSON:Python JSON到Javascript,javascript,python,Javascript,Python,使用python中的这行代码,我创建了包含多条消息的JSON: notification = [{ 'message': 'This is the homepage', 'username': 'User', 'room': 'Home', 'timestamp': '11:59' }, {
notification = [{
'message': 'This is the homepage',
'username': 'User',
'room': 'Home',
'timestamp': '11:59'
},
{
'message': 'Hello World!',
'username': 'User',
'room': 'Home',
'timestamp': '12:00'
}]
return render_template("chat.html", messages = notification)
现在我想打印网页上的所有消息,所以我将所有信息发送到javascript。但当以下脚本的输出返回空字符串时
const message = `{{messages}}`;
console.log(message);
为什么字符串为空?在
通知中传递的内容实际上不是JSON,而是Python列表。您需要使用json.dumps
将其转换为实际的json字符串
然后在JS中,您需要将字符串用引号括起来(单引号最好,因为JSON使用双引号),以便JS在语法上有效。然后,您甚至可以使用Javascript的JSON.parse
将其转换为JS数组:
const message = '{{messages}}' ;
console.log(JSON.parse(message) );
尝试将通知作为json传递给模板
烧瓶
模板
const message = JSON.parse('{{messages | tojson | safe}}');
console.log(message)
看起来您正在传递一个列表,然后在JS中将其用作字符串。试着换一下,然后把这个瓶子贴上?js代码是否嵌入在html文件中?是的<代码>渲染模板
是一个烧瓶函数。我不知道文件的其余部分。此外,脚本可能嵌入到HTML中。我只是假设它是,我的错。是的,它确实是一个flask函数,脚本嵌入在HTMLCan中,您可以尝试在{{messages}}
中不使用引号?
const message = JSON.parse('{{messages | tojson | safe}}');
console.log(message)