我正在尝试在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位,安装了烧瓶,并安装了所有烧瓶库。谁能告诉我修复???
答案 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')
(抱歉,我不能直接回复评论,我没有足够的声誉)