当前位置: 代码迷 >> 综合 >> flask 中flask_restful用法(一)
  详细解决方案

flask 中flask_restful用法(一)

热度:90   发布时间:2023-11-27 21:52:15.0

Flask_RESTful功能之参数验证

1.参数验证:也叫参数解析

   Flask-Restful插件提供了类似WTForms来验证提交的数据是否合法的包,叫做reqparse。

2.用法:

from flask import Flask,url_for,render_template

from flask_restful import Api,Resource,reqparse,inputs

app = Flask(__name__)

api = Api(app)

class RegisterView(Resource):

    def post(self):

        #验证用户名

        #1.创建解析器对象

        parser = reqparse.RequestParser()

        #2.利用解析器对象添加 需要验证的参数

        parser.add_argument('uname',type=str,help='用户名验证错误!',required=True,trim=True)

         parser.add_argument('pwd', type=str, help='密码验证错误!',default="123456")

        parser.add_argument('gender',type=str,choices=['男','女','双性'])

        parser.add_argument('birthday',type=inputs.date,help='生日字段验证错误!')

        parser.add_argument('phone',type=inputs.regex(r'1[3578]\d{9}'))

        parser.add_argument('phomepage',type=inputs.url,help='个人中心链接验证错误!')

        (注意 required=True指的是必填,trim=True指的是去空格)       

 #3.利用解析器对象进行验证,若正确,直接返回验证后合格的参数值,若错误,抛异常信息给客户端

        args = parser.parse_args()

        print(args)

        return { "tips":"注册成功"}

api.add_resource(RegisterView,'/register/')

@app.route('/')

def hello_world():

    return render_template('index.html')

if __name__ == '__main__':

    app.run(debug=True)

3.其中add_argument方法使用详解

add_argument方法可以指定这个字段的名字,这个字段的数据类型等,验证错误提示信息等,具体如下:

default:默认值,如果这个参数没有值,那么将使用这个参数指定的默认值。

required:是否必须。默认为False,如果设置为True,那么这个参数就必须提交上来。

type:这个参数的数据类型,如果指定,那么将使用指定的数据类型来强制转换提交上来的值。

choices:固定选项。提交上来的值只有满足这个选项中的值才符合验证通过,否则验证不通过。

help:错误信息。如果验证失败后,将会使用这个参数指定的值作为错误信息。

trim:是否要去掉前后的空格。

其中的type,

  • python自带的一些数据类型(如str或者int),
  • flask_restful.inputs下的一些特定的数据类型来强制转换。

      url:会判断这个参数的值是否是一个url,如果不是,那么就会抛出异常。

      regex:正则表达式。

      date:将这个字符串转换为datetime.date数据类型。如果转换不成功,则会抛出一个异常。