Python 如何使用参数和POST方法重定向到外部url?
我希望在提交到flask中的操作url之前保存表单数据Python 如何使用参数和POST方法重定向到外部url?,python,redirect,flask,post-parameter,Python,Redirect,Flask,Post Parameter,我希望在提交到flask中的操作url之前保存表单数据 <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">
<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>
请帮助我你需要使用flask.redirect 烧瓶.重定向(位置,代码=302) 返回一个响应对象(WSGI应用程序),如果调用该对象, 将客户端重定向到目标位置。支持的代码是301, 302303305和307。300不受支持,因为它不是真正的 重定向和304,因为它是对带有请求的请求的回答 如果修改了自标头,则定义为 参数:
位置–响应应重定向到的位置。 代码–重定向状态代码。默认值为302 示例代码:
import os
from flask import Flask,redirect
app = Flask(__name__)
@app.route('/')
def hello():
return redirect("http://www.example.com", code=302)
if __name__ == '__main__':
# Bind to PORT if defined, otherwise default to 5000.
port = int(os.environ.get('PORT', 5000))
app.run(host='0.0.0.0', port=port)
请参阅。发送307状态代码而不是302应该告诉浏览器保留使用的HTTP方法,从而具有您期望的行为。您对重定向的调用将如下所示:
@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
url = 'http://www.example.com'
return redirect(url, code=307)
我已经通过使用JavaScript解决了这个问题 首先,将数据发送到服务器 JavaScript代码:
<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>
您想将数据保存在哪里?在用户的计算机上?不,我在服务器上保存了数据,只想重定向到带有参数的url如何将参数和方法传递到重定向方法?
<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>
@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')