全球名称' reqparse'没有定义

时间:2016-08-05 04:58:25

标签: python api rest

我正在尝试在python中开发一个API来创建用户。以下是我的代码。

   from flask import Flask
   from flask_restful import Resource, Api
   app = Flask(__name__)
   api = Api(app)

   class CreateUser(Resource):
       def post(self):
          try:
            # Parse the arguments
              parser = reqparse.RequestParser()
              parser.add_argument('email', type=str, help='Email address to create user')
              parser.add_argument('password', type=str, help='Password to create user') 
              args = parser.parse_args()
              _userEmail = args['email']
              _userPassword = args['password']
              return {'Email': args['email'], 'Password': args['password']}

          except Exception as e:
              return {'error': str(e)}
   api.add_resource(CreateUser, '/CreateUser')
   if __name__ == '__main__':
        app.run(debug=True)

然而,当我在我的REST客户端上运行它时,我将JSON格式的电子邮件和密码发布到客户端       {          "电子邮件" :" abc@xyz.com" ,          "密码" :" abc"       }

我在REST客户端主体中收到错误 的 {         "错误":"全球名称' reqparse'没有定义" }

我有Python 2.7 64位,安装了烧瓶,并安装了所有烧瓶库。谁能告诉我修复???

2 个答案:

答案 0 :(得分:0)

您需要实例化解析器并在请求处理程序之前添加参数。我的意思是移动

# Parse the arguments
  parser = reqparse.RequestParser()
  parser.add_argument('email', type=str, help='Email address to create user')
  parser.add_argument('password', type=str, help='Password to create user')

api = Api(app)

之后的行

答案 1 :(得分:0)

正如你的帖子评论所说,你需要导入reqparse:

from flask_restful import Resource, Api, reqparse

对于你收到的其他null问题,你需要小心这个案子。 如果你发送:{ "Email" : "abc@xyz.com" , "Password" : "abc" },你的python代码必须是这样的:

parser.add_argument('Email', type=str, help='Email address to create user')
parser.add_argument('Password', type=str, help='Password to create user')

(抱歉,我不能直接回复评论,我没有足够的声誉)