Python 服务器端模板柱
我试图在Flask上模拟服务器端表单post操作。 通过使用请求库执行post操作:Python 服务器端模板柱,python,flask,Python,Flask,我试图在Flask上模拟服务器端表单post操作。 通过使用请求库执行post操作: @flask_app.route('/hello',methods=['GET','POST']) def hello(): r = requests.post( "https://somesite.hello" , data= {'user': 'bill','pass': 123}) return r.text
@flask_app.route('/hello',methods=['GET','POST'])
def hello():
r = requests.post(
"https://somesite.hello"
, data= {'user': 'bill','pass': 123})
return r.text
#return redirect("https://somesite.hello")
这就是工作。但当我通过html发布真正的表单时,它也在做重定向。
在#1之后,url将是,但我需要#1的内容,但url从#2如何同时执行1和2?谢谢大家!
UPD:
我找到了一些解决方案,我并不喜欢它,因为用户会看到“重定向到账单页面”页面一秒钟。也许有人知道如何通过请求和重定向来获得一些结果
@flask_app.route('/hello',methods=['GET','POST'])
def hello():
url = "https://somesite.hello"
return flask_app.make_response("""
<html>
<body onload='document.forms[0].submit()'>
Redirecting to billing page...
<form action='%s' method='post'>
<input type='hidden' name='user' value='%s'>
<input type='hidden' name='pass' value='%s'>
</form>
</body>
</html>
"""%(url
,'bill'
,123))
@flask_app.route('/hello',methods=['GET','POST'])
def hello():
url=”https://somesite.hello"
返回应用程序。作出响应(“”)
正在重定向到帐单页面。。。
“”“%(url)
“比尔”
,123))
只需不遵循重定向,而是发布自己的重定向到以下页面:
r = requests.post('some.url', data={'some': 'data'}, allow_redirects=False)
return redirect(r.headers['location'])
我们提交表单数据,但不遵循重定向请求。相反,我们将重定向传递给最终用户。但是,如果支付处理程序使用cookie将状态(很可能是这样)保留为
some.url
为您的请求设置的cookie无法传递给some.url
这可能会有帮助:那么您将如何使用r.text?我的flask应用程序正在与计费站点通信。要下订单,您必须使用一些数据(shop_id、pass_id、sign)制作firts html表单,当您按下表单上的submit按钮时(这是我通过flask尝试执行的post操作),重定向到sec表单,您可以在其中写入卡信息并提交支付。我试着只用一步就能做到。此r.text是计费网站上的第二个表单,但windows.location是我的网站。我不知道如何通过烧瓶更改windows.location。唯一的办法是jscript?谢谢您的回答,但它不适用于我的账单。我不知道为什么。我找到了一个解决方案,我会把它贴在这里,但它更像是一个骗局。