首页 > 解决方案 > 烧瓶错误请求 400

问题描述

我正在使用 Flask 框架,我尝试了基本代码以查看它是否可以工作,我是从一个名为 DeepLizard 的 YouTuber 那里看到的,他们的代码似乎可以正常工作,但是当我在 Pycharm 上运行它时,它不断给我一个“无法解码 JSON 对象:预期值:第 1 行第 1 列(字符 0)”错误消息非常令人沮丧,这里是以下代码:

from flask import Flask
from flask import render_template
from flask import jsonify
from flask import request


app = Flask(__name__) #creates an instance of flask app. And the name 
of application module.
@app.route('/')
@app.route('/hello', methods = ["POST", 'GET'])
def hello1():
message = request.get_json(force =True)
name = message['name']
response = {
    'greeting': 'hello, ' + name + '!'
}

return jsonify(response)

我尝试使用这两种方法 = ['POST'] 和 ['POST', 'GET'],但都没有奏效。我到处搜索,似乎找不到答案,任何帮助将不胜感激。提前致谢。

这是我们尝试用于后端的 html 代码。

标签: jsonflaskpycharm

解决方案


使用get_json不灵活,根据我的经验,它会引发太多错误,没有您的请求内容我无法判断,但这里有一个更好的方法:

以字典形式获取请求数据:

request.args如果您使用的是 GET 请求,或者您request.form使用的是 POST 请求,请使用此操作。现在您可以将它们视为普通字典(即使它们是Immutable Multi Dict,但您可以像任何 python 字典一样操作它们,除了分配新值。

以 JSON 格式获取数据:

我认为使用该json模块更强大,只需使用json.dumps函数并传递任何 dict 将其转换为 JSON,即可从 JSON 字符串中获取 dict 使用:json.loads

你的错误的含义

您收到了错误的请求,这意味着您发送了一些错误的数据或以错误的方式请求路由,默认情况下您的路由只接受 GET 请求。


推荐阅读