zoukankan      html  css  js  c++  java
  • wtforms第三方校验库

    校验类文件

    from wtforms import Form,StringField,IntegerField
    from wtforms.validators import Length,NumberRange,DataRequired

    #类继承From类

    class SeachForm(Form):
        #校验文本类型q,Length()校验他的长度,

        default表示不传的时候默认为123   ,这里的不传是 url里直接不传这个 参数

        DataRequired()校验q 不为空

        q=StringField(validators=[DataRequired(),Length(min=1,max=30)],default="123")
        #校验正整数page,校验他的区间范围,default不传的时候默认为123
        page=IntegerField(validators=[NumberRange(min=1,max=99)],default=1)

    调用校验的方法文件

    #coding=utf-8
    from flask import Flask,make_response,jsonify
    from flask import request
    import sys
    sys.path.append("/Users/lucax/Desktop/test实验室/falsk/鱼书项目/")
    import helper
    from yushu_book import YuShuBook
    from flask import Blueprint
    import json
    from app.web import web
    from app.froms.book import SeachForm

    @web.route("/book/search")
    def search():
      #获取url提交的参数传入校验类
      form=SeachForm(request.args)
      #validate判断是否执行了验证 符合验证要求返回 True
      if form.validate():
        #获取校验好的请求参数
        q=form.q.data
        page=form.page.data
        #判断q是isbn还是关键字 create_app
        is_isbn_or_key=helper.is_isbn_or_key(q)
        if is_isbn_or_key =="isbn":
          result=YuShuBook.search_by_isbn(q)
        else:
          result=YuShuBook.search_by_keyword(q)
        return jsonify(result)
       #请求参数不符合规则没有校验通过
      else:
        #return jsonify({"msg":"参数错误"})

        #也可以使用form.errors,把校验不通过的原因返回到前端

        return jsonify(form.errors)

     https://dormousehole.readthedocs.io/en/latest/patterns/wtforms.html

  • 相关阅读:
    柠檬班软件测试就业班学习笔记持续更新
    linux练习题面试必备持续更新
    windows10 mysql5.7.23解压版安装教程
    2020 年最新:Maven无法使用阿里云仓库下载
    cd1101d 树形dp
    SemanticException [Error 10025]
    spark学习
    es学习
    nginx配置-线上服务器
    jdk、tomcat升级过程中遇到的问题
  • 原文地址:https://www.cnblogs.com/kaibindirver/p/12642438.html
Copyright © 2011-2022 走看看