Python + Flask:验证json POST请求是非空的正确方法

时间:2015-03-30 12:22:18

标签: python json post flask

首先,我对python很新。对于一个小项目,我必须实现一个websevice,可以接收json作为内容。我确实用烧瓶库实现了它,到目前为止工作正常。 我现在唯一的问题是错误处理。我确实检查了正确的内容类型,并将收到的json与方案进行比较。如果请求未通过这些检查,我将发送自定义400响应(引发FailedRequest)。 我现在遇到的问题是,我无法弄清楚,如何检查request.json是否为空。现在,当我发送一个具有正确内容类型但空内容的请求时,我将获得一个系统生成的错误请求"作为回应而不是我的自定义。 如何检查request.json对象是否为空? request.json是没有工作....

或者我是以错误的方式进行整个验证?

    #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

1 个答案:

答案 0 :(得分:10)

只需检查request.data是否存在,if(request.data): ...continue