06-蓝图实战(图书数据搜索与查询),编写get和post请求,同时应用WTForms参数验证

news/2024/10/10 18:30:06/文章来源:https://www.cnblogs.com/REN-Murphy/p/18456903

需求:之前的路由请求格式,不是通用的请求格式,转化为get 和 post请求之后,可以通过request方法获取其中的参数

参考格式 04-使用 Flask 框架实现 POST和GET接口 - 马铃薯1 - 博客园 (cnblogs.com)

@web.route('/book/search/<q>')
def search(q):pass

 

第三方插件库,WTForms

在flask内部并没有提供全面的表单验证,所以当我们不借助第三方插件来处理时候代码会显得混乱,而官方推荐的一个表单验证插件就是wtforms。

wtfroms是一个支持多种web框架的form组件,主要用于对用户请求数据的进行验证,其的验证流程与django中的form表单验证由些许类似,本文主要介绍wtforms组件使用方法以及验证流程。

wtforms依照功能主要分为以下几个类别:
  • Forms: 主要用于表单验证、字段定义、HTML生成,并把各种验证流程聚集在一起进行验证。
  • Fields: 主要负责渲染(生成HTML)和数据转换。
  • Validator:主要用于验证用户输入的数据的合法性。比如Length验证器可以用于验证输入数据的长度。
  • Widgets:html插件,允许使用者在字段中通过该字典自定义html小部件。
  • Meta:用于使用者自定义wtforms功能,例如csrf功能开启。
  • Extensions:丰富的扩展库,可以与其他框架结合使用,例如django。

注意:

WTForms 表单类 searchForm 期待的输入是一个支持 getlist 方法的 MultiDict 类型

1) get请求获取的 request.args 是MultiDict 类型

2) post请求获取的 request.get_json() 是普通dict 类型,因此需要转换为 MultiDict(request.get_json()) 类型


官方文档:WTForms — WTForms Documentation (3.1.x)
参考文档:flask wtforms组件详解 - W-D - 博客园 (cnblogs.com)
pip安装
pip install wtforms

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/811209.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024.9.30 CSP

模拟赛 赛后看着分哗啦啦的往下掉。 T1 median 找中位数,赛时假做法 A 了, 没想到直接搜。。。code #include<bits/stdc++.h> using namespace std; const int N = 1e5+5,mod = 998244353; int n; int a[6][N],ans,f[6][4]; unordered_map<int,bool> mp; int dfs…

VMware Workstation 17.6.1 发布下载,修复 4 个已知问题

VMware Workstation 17.6.1 发布下载,修复 4 个已知问题VMware Workstation 17.6.1 发布下载,修复 4 个已知问题 VMware Workstation 17.6.1 Pro for Windows & Linux - 领先的免费桌面虚拟化软件 基于 x86 的 Windows、Linux 桌面虚拟化软件 请访问原文链接:https://sy…

android开发编译openssl源代码生成libcrypto.so和libssl.so两个动态库用于android ndk项目开发使用

openssl编译本篇文章的操作是在Linux环境之下,在虚拟机ubuntu 20版本上操作的步骤1. openssl下载解压tar包openssl下载地址:https://openssl-library.org/source/下载完解压:tar -zxvf openssl-3.3.2.tar.gz // 我这里下载openssl-3.3.2.tar.gz版本2. 编译openssl库,得到l…

MySQL下载、安装与配置

MySQL下载、安装与配置下载MySQL 1、进入MySQL官网 2、点击 Products,再点击 MySQL Community Server3、选择MySQL版本,点击 Go to Download Page4、点击 Download 下载MySQL安装程序5、点击 No thanks, just start my download,等待下载安装MySQL 1、双击运行下载的安装程序…

web端ant-design-vue Upload 手动实现文件上传使用小节

web端ant-design-vue Upload 手动实现文件上传使用小节。最近在项目开发中用到了手动实现文件上传的组件,之前都是自动上传把返回的文件信息保存到服务器。手动上传相对复杂一下,我把遇到的一些问题整理记录一下,有需要的朋友可以避免走弯路! 1、文件上传需要用formdata格式…

记一次k8s挂载configmap配置文件识别为文件夹的错误

错误表现 挂载.env为配置文件时被识别成一个文件夹而不是一个文件错误原因 创建configmap的时候原始文件使用的是env解决方式 创建configmap的时候需要使用的文件需要修改文件名为挂载的文件名一致 例如本次挂载的文件名是.env则需要在创建configmap的时候原始文件名修改为.evn…

开源项目更新|WPF/Uno Platform/WinUI 3三个版本的《英雄联盟客户端》

为了统一WPF/WinUI3/Uno仓库的项目架构,我们基于.NET Standard 2.0设计了一个可在所有平台上运行的框架,无需依赖第三方库。这个框架直接实现了项目分散化、模块化、视图注入、依赖注入、单例模式和MVVM等基于XAML的项目架构所需功能。采用这种方法,我们可以在不同版本(如WPF、…

简明线性回归算法中的最小二乘法

我们来通过一个具体的例子说明线性回归算法中最小二乘法如何确定模型参数。 示例:房价预测 假设我们想用房子的面积(平方英尺)来预测房价(美元)。我们有以下数据集:面积(平方英尺)房价(美元)800 150,0001000 200,0001200 210,0001500 280,0001. 建立模型 我们假设房价…

简明线性回归算法

线性回归是一种用于预测和建模的统计方法,旨在通过建立输入变量(特征)与输出变量(目标)之间的线性关系来进行分析。下面我们通过一个简单易懂的例子来说明线性回归的详细过程。 例子:预测房价 假设你是一名房地产经纪人,想要根据房子的面积(平方英尺)来预测房子的价格…

web端ant-design-vue Modal.info组件自定义icon和title使用小节

web端ant-design-vue Modal.info组件自定义icon和title整理小节,最近在项目中用到了自定义icon和title的功能,经过测试发现,如果自定义icon title会自动换行,尝试直接修改样式和穿透方式都没有效果,最后采取了一个巧妙的方式,将icon和title放在一个自定义组件内,完美解决…

Ewald求和在分子静电势能计算中的应用

本文介绍了Ewald求和计算方法在周期性边界条件下计算静电势能的方法。周期性的静电势函数并不是一个空间收敛的函数,通过Ewald求和可以将静电势切分为短程相互作用和长程相互作用,两项分别在实空间和倒易空间(或称傅里叶空间、k空间等)收敛。然后就可以进一步进行截断,用更…

vue3中使用markdown并且显示公式

vue3中使用markdown并且显示公式 最终效果如图 下面是代码 1.先安装依赖包npm install markdown-it mathjax2.src下面创建文件utils/mathjax.js,文件内容如下window.MathJax = {tex: {inlineMath: [["$", "$"],["\\(", "\\)"],[&q…