Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 服务器端模板柱_Python_Flask - Fatal编程技术网

Python 服务器端模板柱

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上模拟服务器端表单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                             
    #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?谢谢您的回答,但它不适用于我的账单。我不知道为什么。我找到了一个解决方案,我会把它贴在这里,但它更像是一个骗局。