我正在使用烧瓶应用程序作为服务器。我只是返回一个用户事务。但是,如果事务错误,我需要允许用户给服务器反馈。
from flask import Flask, render_template, request
import pandas as pd
pd.set_option('display.max_colwidth', -1)
app = Flask(__name__)
@app.route("/")
def index():
return render_template('index.html')
@app.route("/submit", methods=['GET','POST'])
def submit_table():
if request.method == 'POST':
if request.form['submit'] == 'Get Started!':
last_month_txn = pd.read_csv("./Predicted_Reoccuring_Payments.csv")
last_month_txn = last_month_txn[["processing_dt", "narrative","transaction_amt", "trans_type_desc"]]
if __name__ == '__main__':
app.run(port=5050, threaded=True)
submit_table函数将读取pandas数据帧并将其发送到页面。这在用户登录时有效。我没有包含登录表单。我有一个bootstrap模式,如果一个人想要对表中的条目提出异议,我会提出这个模式。
<form method = "POST" action="submit">
<div class="modal fade modal-admin" id="myModal" role="dialog">
<div class="modal-dialog modal-lg">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h3 class="modal-title" name="feedback">Submit Feedback</h3>
</div>
<div class="modal-body">
<h4>Please provide feedback about this transaction</h4>
<div class="form-group" style="padding:20px;">
<label for="text_area">Additional information</label>
<textarea class="form-control mywidth" id="text_area" rows="3" name="text_area"></textarea>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" id="submit_modal" data-dismiss="modal">Submit</button>
<button type="button" class="btn btn-primary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
我需要将此数据(特别是textarea的内容)记录到服务器上的某个文件中。我不希望网页在提交时重定向/刷新。 有没有办法让烧瓶获取此表格的内容而不影响网址/网址?
答案 0 :(得分:1)
我认为你必须在javascript中使用Ajax请求。你可以使用Jquery(非常简单)或经典的javascript。
编辑:您可以在谷歌上找到一些文档!
小例子:
$.ajax({
type : 'POST',
url : '/path_url',
dataType : "json",
contentType: 'application/json;charset=UTF-8',
data : JSON.stringify(dict_var),
success : function (result) {
console.log(result)
},
error : function (error) {
console.log(error);
}
});
dict_var是一个词典,你只需要从你的表单中恢复数据(非常简单)并通过dictionnary发送。
在烧瓶中,您只需要读取路线中的数据:
data = json.loads(request.data)
tmp = data["key"]
和平