Python 烧瓶restful和sqlalchemy错误:“;“uname”是:&引用;JSON正文中缺少必需的参数;

Python 烧瓶restful和sqlalchemy错误:“;“uname”是:&引用;JSON正文中缺少必需的参数;,python,parsing,sqlalchemy,flask-restful,Python,Parsing,Sqlalchemy,Flask Restful,向数据库添加新数据时出错。user是映射到user_info表的类,user是user类的对象。我在解析请求数据时遇到了一个问题,但我无法解决它。下面是使用curl命令在终端上的输出: 命令: curl-d“uname=man,pword=uuoiuu,fname=manish,lname=kumar,gender=male,emailid=mkcomp12@gmail.com“-X POST-v 输出: parser = reqparse.RequestParser() parser.ad

向数据库添加新数据时出错。user是映射到user_info表的类,user是user类的对象。我在解析请求数据时遇到了一个问题,但我无法解决它。下面是使用curl命令在终端上的输出:

命令:

curl-d“uname=man,pword=uuoiuu,fname=manish,lname=kumar,gender=male,emailid=mkcomp12@gmail.com“-X POST-v

输出:

 parser = reqparse.RequestParser()
 parser.add_argument('uname', type = unicode, required = True, location= 'json')
 parser.add_argument('pword', type = unicode, required = True, location= 'json')
 parser.add_argument('fname', type = unicode, required = True, location= 'json')
 parser.add_argument('lname', type = unicode, required = True, location= 'json')
 parser.add_argument('gender', type = unicode, required = True, location= 'json')
 parser.add_argument('email_id', type = unicode, required = True, location= 'json')

 session= Session()
 class store_user(Resource):
    def post(self):
        #args=request.get_json(force = True)
        args = parser.parse_args()
        unq_id = str(uuid.uuid4()) 

        user_data = {'uid' : unq_id, 'username' : args['uname'], 'password' : args['pword'], 'f_name' : args['fname'],              
                        'l_name' : args['lname'], 'sex' : args['gender'], 'email_id' : args['email_id']}
        auser = user(uid = user_data['uid'], username = user_data['username'], password = user_data['password'], f_name =
                    user_data['f_name'], l_name = user_data['l_name'], sex =
                    user_data['sex'], email_id = user_data['email_id'])
        session.add(auser)
        session.commit()    


        #return user_data
        #return jsonify(auser)

 api.add_resource(store_user, '/user', endpoint='user')
在DNS缓存中找不到主机名 *正在尝试127.0.0.1。。。 *连接到127.0.0.1(127.0.0.1)端口5000(#0) >POST/user HTTP/1.1 >用户代理:curl/7.35.0 >主持人:127.0.0.1:5000 >接受:*/* >内容长度:99 >内容类型:application/x-www-form-urlencoded > *上传已完全发送:99个字节中的99个 *HTTP 1.0,假设在正文之后关闭 您必须以JSON(带有“Content-Type:application/JSON”标题)或URL格式正确格式化输入数据。因为您在参数定义中指定了location=json,所以必须使用内容类型头将其格式化为json


这是您的命令:
curlhttp://127.0.0.1:5000/user -内容类型:application/json'-d'{“uname”:“man”,“pword”:“uuoiuu”,“fname”:“manish”,“lname”:“kumar”,“gender”:“male”,“emailid”:mkcomp12@gmail.com}“-X POST-v

您必须正确格式化输入数据,可以是JSON格式(使用”内容类型:application/json“header)或URL格式。由于您在参数定义中指定了location=json,因此必须使用内容类型header将其格式化为json


这是您的命令:
curlhttp://127.0.0.1:5000/user -内容类型:application/json'-d'{“uname”:“man”,“pword”:“uuoiuu”,“fname”:“manish”,“lname”:“kumar”,“gender”:“male”,“emailid”:mkcomp12@gmail.com}'-X POST-v

我认为您的curl命令有两个问题:

  • 您需要提交-H“Content-Type:application/json”,以表明您将发送json数据(请看一下)

  • 您必须将数据作为json数据移交:

    {“uname”:“man”,“pword”:“uuoiuu”}


  • 我认为curl命令有两个问题:

  • 您需要提交-H“Content-Type:application/json”,以表明您将发送json数据(请看一下)

  • 您必须将数据作为json数据移交:

    {“uname”:“man”,“pword”:“uuoiuu”}


  • 有人请编辑它…迫切需要帮助这里…我是新的pythonIt将有助于添加至少错误消息。检查它现在。我已经在终端上包含了输出。你能给我们看一下你发送的curl命令吗?也这样做了…你现在可以检查它,有人请编辑它…这里急需帮助…我是pythonIt新手,请至少添加错误消息。现在检查它。我已经把终端上的输出包括进去了。你能给我们看看你发送的curl命令吗?也这样做了……你现在可以检查了,很高兴听到。如果答案正确并且对您有帮助,请单击该复选框,以便其他人知道它有帮助。很高兴听到。如果答案正确并且对您有帮助,请单击该复选框,以便其他人知道它对您有帮助。
    > * Hostname was NOT found in DNS cache
    *   Trying 127.0.0.1...
    * Connected to 127.0.0.1 (127.0.0.1) port 5000 (#0)
    > POST /user HTTP/1.1
    > User-Agent: curl/7.35.0
    > Host: 127.0.0.1:5000
    > Accept: */*
    > Content-Length: 99
    > Content-Type: application/x-www-form-urlencoded
    > 
    * upload completely sent off: 99 out of 99 bytes
    * HTTP 1.0, assume close after body
    < HTTP/1.0 400 BAD REQUEST
    < Content-Type: application/json
    < Content-Length: 90
    < Server: Werkzeug/0.9.4 Python/2.7.6
    < Date: Thu, 28 Jan 2016 07:31:56 GMT
    < 
    {
        "message": {
            "uname": "Missing required parameter in the JSON body"
        }
    }