如何在python中组合flask和请求?

如何在python中组合flask和请求?,python,flask,python-requests,Python,Flask,Python Requests,在internallogin页面上,如果用户进行了身份验证,我想发出post请求。为此,我有以下代码 @app.route('/internallogin', methods=['POST', "GET"]) def showInternallogin(): uname = request.form.get("name") passw = request.form.get("pass") if is_valid_login(uname, passw): p

internallogin
页面上,如果用户进行了身份验证,我想发出post请求。为此,我有以下代码

@app.route('/internallogin', methods=['POST', "GET"])
def showInternallogin():
    uname = request.form.get("name")
    passw = request.form.get("pass")
    if is_valid_login(uname, passw):
        print("legal_login")
        req =  requests.Request(method="POST", url='http://localhost:5000/internal', data={"name": uname, "passw": passw})
        return req
    else:
        return redirect('/login')

打印“legal_login”后立即发生的是,我得到了一个错误,即
TypeError:“Request”对象不可调用。如何使用flask发出post请求?

您可以使用如下方式发出post:


但是,通常不需要从服务器本身调用服务器。您应该考虑在<代码> /内部< /代码>路由中抽象出逻辑,并直接在该路由中调用它。

< P>下面是从@ Karin回答< /P>
response = requests.post('http://localhost:5000/internal', data={...})
下面可能是您收到该错误的原因

如果返回一个元组,元组中的项可以提供额外的信息。此类元组的形式必须是(响应、状态、标题),其中元组中必须至少有一项。状态值将覆盖状态代码,标题可以是附加标题值的列表或字典

这可能会解决问题

return (req.text, req.status_code, req.headers.items())

你好,Karin,当我进行更改时,我得到了与
TypeError相同的错误:'Request'对象不可调用
。有什么修复方法吗?如果你用建议替换了你的呼叫,那么你的代码中应该没有
Request
(你应该用我给出的格式替换原来的
req=requests.Request(…)
行)。对不起,很好的呼叫-当我以正确的方式进行更改时,我得到的错误是,
TypeError:“Response”对象不可调用
。对此我能做些什么?我认为这不是一种有用的调试格式。我的建议是阅读requests文档(使用我给您的链接),如果您再次陷入困境,您可以在提供代码尝试的同时提出单独或更新的问题。但是,您应该尝试理解错误
对象不可调用的含义。这意味着您正在调用没有调用方法的东西。还有许多其他堆栈溢出问题可以帮助解释:)虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,仅链接的答案可能无效。-@那更好吗?
return (req.text, req.status_code, req.headers.items())