2016-08-05 73 views
0

我正试图在python中开发一个API来创建用户。以下是我的代码。未定义全局名称'reqparse'

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格式的电子邮件地址和密码给客户端 { “电子邮件”:“[email protected]”, “密码”: “ABC” }

我得到的REST客户身上一个错误 { “错误”: “全局名称 'reqparse' 没有定义” }

我安装了Python 2.7 64位软件,安装了烧瓶,并安装了所有烧瓶库。有人可以告诉我的解决办法吗?

+0

你不进口'reqparse'。 –

+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)

+0

没有帮助没有试过 –

+0

我仍然收到电子邮件和密码都为空在响应正文 –

+0

你的意思是在请求正文? –

0

在你的文章的评论说,你需要导入reqparse:

from flask_restful import Resource, Api, reqparse 

而对于空的你的其他问题接受,你需要小心的情况下。 如果发送:{ "Email" : "[email protected]" , "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') 

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

+0

尝试了相同的操作,但电子邮件和密码的空值仍然存在 –