Python Flask:验证json POST请求非空的正确方式

2024-09-22 16:37:12 发布

您现在位置:Python中文网/ 问答频道 /正文

首先,我对python很陌生。对于一个小项目,我必须实现一个webevice,它可以接收json作为内容。我确实在烧瓶库中实现了这一点,到目前为止效果良好。 我现在唯一的问题是错误处理。我会检查正确的内容类型,并将接收到的json与方案进行比较。如果请求未通过这些检查,我将发送一个自定义400响应(引发FailedRequest)。 我现在遇到的问题是,我不知道如何检查request.json是否为空。现在,当我发送一个内容类型正确但内容为空的请求时,我将得到一个系统生成的“坏请求”作为响应,而不是我的自定义请求。 如何检查request.json对象是否为空?request.json is None did't work。。。。

或者我做整个验证的方式不对?

    #invoked method on a POST request
@app.route('/',methods = ['POST'])
def add():
    """
    This function is mapped to the POST request of the REST interface
    """
    print ("incoming POST")
    #check if a JSON object is declared in the header

    if request.headers['Content-Type'] == 'application/json; charset=UTF-8':
        print ("passed contentType check")
        print ("Json not none")
        print (request.get_json())
        data = json.dumps(request.json)
        #check if recieved JSON object is valid according to the scheme
        if (validateJSON(data)):
            saveToMongo(data)
            return "JSON Message saved in MongoDB"

    raise FailedRequest

Tags: thetojson类型内容dataifobject