2016-08-05 21 views
0

Ich versuche, eine API in Python zu erstellen, um Benutzer zu erstellen. Unten ist mein Code.globaler Name 'reqparse' ist nicht definiert

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) 

Jedoch, wenn ich es auf meinem REST-Client ausführen, poste ich die E-Mail und Passwort im JSON-Format an den Client als { "E-Mail": "[email protected]", "Passwort": "abc" }

ich einen Fehler in der REST-Client Körper erhalten, wie { "Fehler": "global name 'reqparse' ist nicht definiert" }

Ich habe Python 2.7 64bit mit der Flasche-Ruhe und alle Flaschenbibliotheken installiert. Kann mir jemand das reparieren ???

+0

Sie sind nicht importieren 'reqparse'. –

+0

Danke, dass ich das getan habe :) und jetzt bekomme ich null für E-Mail und Passwort, obwohl ich bekommen sollte, was ich gepostet habe. Können Sie mir sagen, was vermisse ich –

Antwort

0

Sie möchten Ihren Parser instanziieren und die Argumente vor dem Anforderungshandler hinzufügen. Ich meine

# 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') 

auf der Linie nach api = Api(app)

+0

Nein, das hilft nicht versucht, dass –

+0

ich immer noch E-Mail und Passwort sowohl als null in Antwort Körper –

+0

Sie meinen in der Anfrage Körper? –

0

bewegen Wie gesagt in den Kommentaren der Post, müssen Sie importieren reqparse:

from flask_restful import Resource, Api, reqparse 

Und für Ihr anderes Problem von null empfangen wird, Sie müssen auf den Fall achten. Wenn Sie senden: { "Email" : "[email protected]" , "Password" : "abc" }, Ihre Python-Code muss so sein:

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

(sorry ich in den Kommentaren nicht direkt reagieren zu können, ich habe nicht genug Ruf)

+0

Erprobt die gleiche, aber die Null für E-Mail und das Kennwort gilt weiterhin –