from flask import Flask
from flask_restful import Api, Resource, inputs
from flask_restful.reqparse import RequestParser
app = Flask(__name__)
api = Api(app)
class RegisterView(Resource):
def post(self):
# 建立解析器
parser = RequestParser()
# 定义解析规则
parser.add_argument('uname', type=str, required=True,
trim=True, help='用户名不符合规范',location='form')
parser.add_argument('pwd', type=str, help='密码错误', default='123456',location='form')
parser.add_argument('age', type=int, help='年龄验证错误!',location='form')
parser.add_argument('gender', type=str, choices=[
'男', '女', '保密'], help='性别验证错误',location='form')
parser.add_argument('birthday', type=inputs.date, help='生日验证错误',location='form')
parser.add_argument('phone', type=inputs.regex(
'^1[356789]\d{9}$'), help='电话验证错误',location='form')
parser.add_argument('homepage', type=inputs.url, help='个人主页验证错误',location='form')
# 解析数据
args = parser.parse_args()
print(args)
return {'msg': '注册成功!'}
api.add_resource(RegisterView, '/register/')
if __name__ == '__main__':
app.run(debug=True)
老师,你的代码里没有location='form',为什么也可以发送form成功呢,如果是修改的前端表头和raw,直接发送json就行,又不用使用form,没有看到你修改这两个值,Flask 的 request.values 说的默认支持form,我试过了,好像不行,就在代码里添加了location='form',来支持前端使用form