当前位置: 首页 > 知识库问答 >
问题:

如何在python中组合烧瓶和请求?

巴照
2023-03-14

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”之后立即发生的事情是,我得到错误消息< code>TypeError: 'Request '对象不可调用。如何使用flask发出post请求?

共有2个答案

薛保臣
2023-03-14

以下是来自@Karin的回答

response = requests.post('http://localhost:5000/internal', data={...})

这可能是您收到该错误的原因。

返回请求。来自烧瓶的响应对象

如果返回元组,则元组中的项目可以提供额外的信息。此类元组必须采用以下形式(响应、状态、标头),其中至少有一个项目必须位于元组中。状态值将覆盖状态代码,并且标头可以是其他标头值的列表或字典。

这应该能解决问题。

return (req.text, req.status_code, req.headers.items())
屠锦
2023-03-14

您可以使用< code>requests发布帖子,如下所示:

response = requests.post('http://localhost:5000/internal', data={...})

然而,通常不需要从服务器本身调用服务器。您应该考虑抽象出/internal路由中的逻辑,然后直接在此路由中调用它。

 类似资料:
  • 我已经用flask在python上制作了一个restapi(端口:5000),我正在从一个网站(端口:80)发出get和post请求。我收到了cors错误,所以我尝试在RESTAPI中为站点创建一个响应头。但是我得到了导入错误: 我已经下载了烧瓶cors模块并升级它,并确保它是在正确的路径,但它仍然不工作。 API代码:

  • 问题内容: 我对Flask和Matplotlib非常陌生。我希望能够显示我在某些html中生成的简单图表,但是我很难弄清楚该怎么做。这是我的Python代码: 这是我的HTML: 问题答案: 您可以在Flask URL路由处理程序中即时生成图像: 然后,您需要将图像包含在HTML模板中:

  • 问题内容: 我试图用一个烧瓶形式的sqlalchemy请求的结果填充选择字段。 这是代码: 这是模板: 查看: 模型(仅粘贴了关联表和作者表,很多列都不用了) 我目前收到此错误: 我真正想要的是,选择字段显示作者姓名及其编号,然后将作者编号返回至应用程序(返回至位于头的名为“ add_author”的函数)。 谢谢。 问题答案: 您有两个问题: 正如肖恩·维埃拉(Sean Vieira)在回答中指

  • 我正在建立一个小网站,我已经在SQLAlChemy中拥有了我所有的模型。该网站将发布一些离线计算的信息。只有结果将被发布到一个精简的数据库,即它包含结果,而不是原始数据,但网站需要查询结果。 我将使用Flask,因为我的模型已经用Python驱动了(通过SWIG在C中进行了一些繁重的工作),我不想使用Django。 我敢肯定,以前有人问过这个问题,通常没有太多理由的咒语是“使用炼金术”。问题是为什

  • 我尝试使用axios对烧瓶服务器进行POST: 现在是烧瓶的部分 但是,我最终会出现以下错误: 无法加载XMLHttpRequesthttp://127.0.0.1:5000/test.对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“access control Allow Origin”标头。起源'http://localhost:3000因此不允许访问。 为什么?我将按照建议设置标题

  • 我正在使用Flask,并从get请求返回一个XML文件。如何将内容类型设置为xml? 例如。