在烧瓶后端上实现POST / REDIRECT / GET

时间:2018-07-24 15:03:25

标签: python flask post-redirect-get

我是Web开发人员和javascript的相对入门者,我制作了一个Flask应用程序,该应用程序采用用户表单并将数据放入表中。但是,当我重新加载包含表的模板时,表单将重新提交。我知道我必须实现一个post / redirect / get系统,并且我理解其背后的逻辑,但是就代码而言,我只是不知道该怎么做。

#New Order Page
@app.route('/new-cad-order', methods=['GET', 'POST'])
def CAD_order():

    if request.method == 'POST':
        Order_ID = request.form['Order_ID']
        Order_Date = request.form['Order_Date']
        Customer_Name = request.form['Customer_Name']
        Order_Balance_Without_Tax = request.form['Order_Balance_Without_Tax']
        Delivery_Date = request.form['Delivery_Date']
        Final_Order_Balance_With_Tax = request.form['Final_Order_Balance_With_Tax']
        Payment_Date = request.form['Payment_Date']
        Check_Number = request.form['Check_Number']
        Deposit_Date = request.form['Deposit_Date']
        Verification_Date = request.form['Verification_Date']

        key = 'Allow'

        #Processing the data

        return render_template('tracking.html', ID=Order_ID, OrderDate=Order_Date, CustomerName=Customer_Name,
    OrderBalance=Order_Balance_Without_Tax, Downpayment=Downpayment_Balance, Delivery=Order_Delivered, DeliveryDate=Delivery_Date,
    FinalOrderBalance=Final_Order_Balance_With_Tax, RCheck=Revenue_Check, PReceival=Payment_Received, PaymentDate=Payment_Date,
    CheckNum=Check_Number, Deposit=Bank_Deposit, DepositDate=Deposit_Date, Ver=Verification, VerDate=Verification_Date, key=key)

    return render_template('CAD_order.html')

1 个答案:

答案 0 :(得分:0)

经过一段代码弄乱后,我找到了答案!我所做的就是在注册新表单数据后更改表格模板页面的url。现在,由于方法更改为GET,因此用户无法重新提交表单。

<script>
var table = document.getElementById("orders");
if(localStorage.tableData==undefined){localStorage.tableData=table.innerHTML};
table.innerHTML = localStorage.tableData;

//Registering changes based on form data... 

localStorage.tableData=table.innerHTML;
document.location.href = 'http://localhost:5000/tracking';
  };