javascript - Javascript 如何访问从 Python Flask 的 render_template() 函数发送的数据?
问题描述
问题:我正在尝试从 Javascript 代码访问我发送的数据(当用户导航到网站的登录页面时),以便在文档准备好时显示它。该数据是一个数据框。
蟒蛇代码:
from flask import Flask, render_template, jsonify
import pandas as pd
import numpy as np
from pandas import DataFrame
@app.route("/",methods = ['POST', 'GET'])
def homeLanding():
df = pd.DataFrame(data=[['ab1234','12:34'],['cd1234','12:36'],['ae54548','12:55'],['df59894','12:56']])
df2 = df.to_json(orient='records')
return render_template("index.html",someResponse=df2,namespace='/test')
Javascript代码:
$(document).ready(function(){
//Convert response dataframe to variable
console.log(someResponse);
var x = JSON.parse(someResponse);
//print response dataframe
console.log(x);
//populate table with response dataframe.
$('#table1').DataTable({
"destroy":true,
"searching": false,
"ordering": false,
"paging": false,
"bordering":true,
data: x,
columns: [
{"title": 'ID'},
{"title": 'Time'},
]
});
});
html脚本:
<!DOCTYPE html>
<html>
<head>
<script src="//code.jquery.com/jquery-3.3.1.min.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/socket.io/1.3.6/socket.io.min.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/1.10.16/js/jquery.dataTables.min.js"></script>
<script src="static/js/application.js"></script>
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdn.datatables.net/1.10.20/css/jquery.dataTables.min.css">
<link rel="stylesheet" href="static/css/application.css">
</head>
<body>
<div class="container">
<div class="container-wrapper" margin="auto">
<table id="table1" class="display"></table>
</div>
</div>
</body>
</html>
当前状态:我一直在尝试几种将数据帧传递给 render_template() 的方法,但数据帧似乎没有被发送到客户端的 Javascript 代码,或者我不知道如何正确访问来自 Javascript 响应的数据。数据框不会打印到控制台,也不会填充 table1。
提前致谢。
解决方案
在 html 文件中编写 js 代码:
<script>
$(document).ready(function(){
//Convert response dataframe to variable
console.log("{{ someResponse }}");
var x = JSON.parse("{{ someResponse }}");
//print response dataframe
console.log(x);
.......
</script>
您将无法将此变量从后端传递到 javascript 文件。
推荐阅读
- python - 在训练和预测后恢复实例的 ID
- javascript - ES6+/React Native 类属性:第一个未定义
- javascript - 资产目标文件夹未设置跳过本机反应(图片未在 APK 中加载)
- selenium - Firefox 没有从 selenium 网格节点配置中获取配置文件
- reactjs - 在 create-react-app 中定义 templatesParameters
- django - Django REST Framework - 为自定义 JWT 身份验证覆盖 JSONWebTokenAuthentication
- spring-boot - 使用 Spring REST Docs 记录空值
- docker - Docker 服务卡在新状态(Swarm)
- objective-c - UIRefreshControl 跳转和闪现问题
- ios - Phonegap iOS 应用程序卡在启动屏幕