烧瓶不良要求400

时间:2018-08-12 08:31:49

标签: json flask pycharm

我在使用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'],但两种方法均无效。我到处搜索,似乎找不到答案,将不胜感激。提前致谢。

This is the html code we are trying to use for the backend.

1 个答案:

答案 0 :(得分:0)

使用get_json并不灵活,根据我的经验,如果没有您无法确定的请求内容,则会引发太多错误,但这是一种更好的方法:

获取请求数据作为字典:

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

以JSON格式获取数据:

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

错误含义

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