2016-08-05 3 views
0

Я пытаюсь разработать API в python для создания пользователя. Ниже мой код.глобальное имя '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]», «Пароль»: "а" }

Я получаю сообщение об ошибке в клиентском теле REST, как { "ошибка": "глобальное имя 'reqparse' не определен" }

У меня есть Python 2.7 64bit с флягой-restful и все библиотеки флагов. Может кто-нибудь сказать мне исправить ???

+0

Вы не импортируя 'reqparse'. –

+0

Спасибо, я сделал это :), и теперь я получаю null для электронной почты и пароля, тогда как я должен получать то, что я разместил. Можете ли вы рассказать мне, что мне не хватает –

ответ

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

Я все еще получаю электронную почту и пароль как null в ответном теле –

+0

Вы имеете в виду в теле запроса? –

0

Как сказано в комментариях к сообщению, вы должны импортировать reqparse:

from flask_restful import Resource, Api, reqparse 

И для другой задачи нуль получил, вам нужно быть осторожным к делу. Если вы отправляете: { "Email" : "[email protected]" , "Password" : "abc" }, код питон должен быть таким:

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

(жаль, что я не могу ответить непосредственно в комментариях, я не имею достаточно репутации)

+0

Пробовал то же самое, но значение null для электронной почты и пароля по-прежнему относится к –

Смежные вопросы