校验类文件

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

#类继承From类

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

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

    DataRequired()校验q 不为空

    #校验正整数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

相关文章:

  • 2021-12-17
  • 2022-02-07
  • 2021-12-27
  • 2022-12-23
  • 2022-12-23
  • 2021-08-27
  • 2021-10-30
  • 2022-12-23
猜你喜欢
  • 2021-11-30
  • 2022-12-23
  • 2021-08-08
  • 2022-12-23
  • 2021-05-29
  • 2022-12-23
  • 2021-07-09
相关资源
相似解决方案