python 为什么 flask “POST”方法不起作用?

vnjpjtjt  于 2023-02-18  发布在  Python
关注(0)|答案(1)|浏览(340)

我正在试着在Flask上创建一个小型的聊天平台。没有什么特别的,只是一个实验。我的问题是,Flask似乎没有从我的post语句中获取任何输入,即使我在控制台中得到了消息。

text = {"text":typed}             #both userenter and typed are strings
username = {"username":userenter}
requests.post(send_url, username)   
requests.post(send_url, text)
typed = ''

这是客户机代码中最重要的部分,因为其余部分主要是打印内容和进行击键。
这是培养瓶代码:

chat = {"Chat":["Welcome to my chatting thing!\n"]}
@app.route('/chat', methods = ['POST'])
def chatt():
    global chat
    username = request.form['username']
    Text = request.form['text']
    chat["Chat"].append(username)
    chat["Chat"].append(": ")
    chat["Chat"].append(Text)
    chat["Chat"].append("\n")
    return

对于flask代码,我的主要目标是从post中获取输入,并将其附加到字典“chat”中的列表
控制台日志:

172\.31.128.1 - - \[16/Feb/2023 23:07:42\] "GET /get-chat HTTP/1.1" 200 -
172\.31.128.1 - - \[16/Feb/2023 23:07:43\] "GET /get-chat HTTP/1.1" 200 -
172\.31.128.1 - - \[16/Feb/2023 23:07:44\] "GET /get-chat HTTP/1.1" 200 -
172\.31.128.1 - - \[16/Feb/2023 23:07:45\] "POST /chat HTTP/1.1" 400 -
172\.31.128.1 - - \[16/Feb/2023 23:07:45\] "POST /chat HTTP/1.1" 400 -
172\.31.128.1 - - \[16/Feb/2023 23:07:46\] "GET /get-chat HTTP/1.1" 200 -
172\.31.128.1 - - \[16/Feb/2023 23:07:47\] "GET /get-chat HTTP/1.1" 200 -
172\.31.128.1 - - \[16/Feb/2023 23:07:48\] "GET /get-chat HTTP/1.1" 200 -
172\.31.128.1 - - \[16/Feb/2023 23:07:49\] "GET /get-chat HTTP/1.1" 200 -

控制台确实记录了帖子通过,但没有向列表中添加任何内容。
我试着修改代码,尝试不同的语法,并把它打印出来,但是,不管我怎么做,控制台似乎是POST语句通过的唯一证据。
编辑#1:我试过使用像breakpoint()和其他一些调试器。没有用。还有,有人指出我的帖子返回400而不是200,这是一个错误的请求。如果有人知道解决这个问题的方法,请告诉我。
如果你需要更多关于我的代码的信息请告诉我。

e3bfsja2

e3bfsja21#

1.出现400错误,请检查这意味着什么
1.您正在发送两个请求,而不是一个。您的操作需要2个参数:

data = {"text": typed, "username": userenter}             
requests.post(send_url, data)

您可能还希望接收一些响应,以便action可以返回一些您可以拾取的内容。

相关问题