2016-08-05 101 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

嘗試了相同的操作,但電子郵件和密碼的空值仍然存在 –