如何使用参数和POST方法重定向到外部URL?
问题描述:
我要先保存表单数据,然后再提交到烧瓶中的操作网址
I want save form data before submit to action url in flask
<form action="" method="POST">
<input type="hidden" name="PAYEE_ACCOUNT" value="U1234567">
<input type="hidden" name="PAYEE_NAME" value="Name">
<input type="text" name="PAYMENT_AMOUNT">
<input type="submit" name="PAYMENT_METHOD" />
</form>
我可以提交此表单,但是我想在提交之前保存表单数据
I can submit this form, but i want save form data before submit
查看:
@mod.route('/payment/', methods=['GET', 'POST'])
def payment():
if request.method != "POST":
return render_template('form.html')
form = request.form
form_data = {'PAYEE_ACCOUNT': form['PAYEE_ACCOUNT'],
'PAYEE_NAME': form['PAYEE_Name'],
'PAYMENT_AMOUNT' : form['PAYMENT_AMOUNT']
}
# Save Data
import urllib
params = urllib.urlencode(form_data)
url = 'http://www.example.com'
return redirect(url, params)
请帮助我
答
我已经通过使用JavaScript解决了这个问题.
I've solved this problem by using JavaScript.
首先,将数据发送到服务器.
First, sending the data to server.
JavaScript代码:
JavaScript code:
<script type="text/javascript">
var $SCRIPT_ROOT = {{ request.script_root|tojson|safe }};
$(function() {
$('#PAYMENT_METHOD').bind('click', function() {
$.getJSON($SCRIPT_ROOT +'/credit/save_transaction', {
PAYMENT_ID: $('input[name="PAYMENT_ID"]').val(),
PAYMENT_AMOUNT: $('input[name="PAYMENT_AMOUNT"]').val(),
SUGGESTED_MEMO: $('input[name="SUGGESTED_MEMO"]').val()
}, function(data) {
if (data.result == 'ok') {
$('#form_payment').submit();
}
});
return false;
});
});
</script>
然后,保存数据并返回结果.
Then, saving the data and returning result.
查看代码:
@mod.route('/save_transaction', methods=['GET', 'POST'])
def save_transaction():
follow_num = request.args.get('PAYMENT_ID')
amount = request.args.get('PAYMENT_AMOUNT')
memo = request.args.get('SUGGESTED_MEMO')
#Save Data
return jsonify(result='ok')