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

  • 相关阅读:
    目录
    DRF的分页
    Django Rest Framework 视图和路由
    爬虫基本原理
    C# System.Threading.Timer的使用
    C# Task的使用
    C# 线程池的使用
    C# 异步委托回调函数使用
    C#异步委托等待句柄的使用
    C# 异步委托的使用
  • 原文地址:https://www.cnblogs.com/kaibindirver/p/12642438.html
Copyright © 2011-2022 走看看