python - 如何将选定行的数组从数据表传递到 Flask?
问题描述
我正在尝试从烧瓶中的数据表中获取行信息。该数组在 JQuery 端显示数据,但在烧瓶中访问时为空。如何传递我的数组以便我可以使用 python 访问它?
烧瓶
@api.route('/apply_billing')
def apply_billing():
bill_month = request.args.get('bill_month', 0)
markup = request.args.get('markup', 0, type=float)
billed = request.args.get('billed', 0, type=float)
comment = request.args.get('comment', 0, type=str)
tickets = request.args.getlist('tickets')
print(tickets)
return jsonify(result=str(bill_month) + str(markup))
jQuery
<script type=text/javascript>
$(function() {
$('#submit').bind('click', function() {
var ticket_array = [];
$('#billinglist').DataTable().rows('.selected').every(function(rowIdx){
ticket_array.push($('#billinglist').DataTable().row(rowIdx).data())
});
var data = {
"bill_month": $('input[name="month"]').val(),
"markup": $('input[name="markup"]').val(),
"billed": $('input[name="billed"]').val(),
"comment": $('input[name="comment"]').val(),
"tickets": ticket_array
}
console.log(data)
$.ajax({
url: "{{ url_for('api.apply_billing') }}",
data: data,
success: function(response) {
alert(response.result);
$('#billinglist').DataTable().ajax.reload();
}
});
return false;
});
});
</script>
解决方案
我能够在https://stackoverflow.com/users/100297/martijn-pieters使用 martijn-pieters 的回答解决这个问题
烧瓶:
@api.route('/apply_billing', methods=["POST"])
def apply_billing():
data = request.get_json()
print(data["tickets"])
return jsonify("test")
jQuery
<script type=text/javascript>
$(function() {
$('#submit').bind('click', function() {
var ticket_array = [];
$('#billinglist').DataTable().rows('.selected').every(function(rowIdx){
ticket_array.push($('#billinglist').DataTable().row(rowIdx).data())
});
var data = {
bill_month: $('input[name="month"]').val(),
markup: $('input[name="markup"]').val(),
billed: $('input[name="billed"]').val(),
comment: $('input[name="comment"]').val(),
tickets: ticket_array
}
console.log(data)
$.ajax({
url: "{{ url_for('api.apply_billing') }}",
type: "POST",
data: JSON.stringify(data),
contentType: "application/json; charset=utf-8",
success: function(response) {
alert(response.result);
$('#billinglist').DataTable().ajax.reload();
},
error: function(){
alert("No Bueno!!")
}
});
return false;
});
});
</script>
推荐阅读
- python - 如何使用 dict.update() 更新字典?
- java - 连接超时在 HttpClient 中不起作用
- javascript - ng-repeat 中未定义函数“x”
- c++ - 创建动态分配的指针数组 C++
- react-native - TypeError:对象不是构造函数(评估'new _pubnubReact.default')
- java - 设置代理和发送标头的问题 - selenium 和 java
- visual-c++ - 为什么此 SIMD 代码运行速度比等效标量慢?
- excel - 如果可能,使用 VBA 或任何 excel 公式单击按钮时从 excel 表中删除 n% 的行
- kubernetes - Kubernetes 从端点 REST API 拉取信息
- numpy - 如何提取多模态自动编码器的编码部分并将 .h5 模型转换为 numpy 数组?