Flask开发技巧之参数校验 目录 Flask开发技巧之参数校验 1、请求参数分类 2、解决方案使用到的库 3、针对url查询参数与一般json格式 4、针对复杂json格式数据 本人平时开发中使用的...,或者学习到的一些flask开发技巧整理,需要已有较为扎实的flask基础。...1、请求参数分类 一般来说,前端发送过来的请求中,大致包含以下三种类型的参数,分别是url路径参数,url查询参数,还有目前前后端分离开发中最常见的json格式的数据。...= FieldList( StringField(), min_entries=1 ) info = FormField(InfoForm) area_list...() 如此就可以实现复杂json数据的校验 关于flask的参数校验,以上就是我目前掌握的一些技巧,如有错误欢迎指出。
,可以通过Python代码生成表单,而Flask-WTF则是Flask集成了WTF表单功能的实现。...pip3 install Flask-WTF在Pycharm中创建新的Flask项目flask-wtf,要使用Flask-WTF需要在app.py中创建Flask对象之后添加如下配置,# 配置WTF的CSRF...,以登录表单为例,新增一个LoginForm对象,并增加相应的属性from flask_wtf import FlaskFormfrom wtforms import StringField, PasswordField...在表单中的用户名和密码输入框中输入数据 可以看出密码是非明文显示的表单模型的字段类型在第一个表单模型中使用了两个字段类型,分别是StringField和PasswordField,并且在页面输入密码是也能够将密码以非明文的形式显示...DateField,日期选择DateTimeField,日期时间选择文件上传相关类型 FileField,文件单选MultipleFileField,文件多选其他类型 SubmitField,提交表单按钮FieldList
,可以通过Python代码生成表单,而Flask-WTF则是Flask集成了WTF表单功能的实现。...pip3 install Flask-WTF 在Pycharm中创建新的Flask项目flask-wtf,要使用Flask-WTF需要在app.py中创建Flask对象之后添加如下配置, # 配置WTF...,专门用来编写表单模型,以登录表单为例,新增一个LoginForm对象,并增加相应的属性 from flask_wtf import FlaskForm from wtforms import StringField...在表单中的用户名和密码输入框中输入数据 可以看出密码是非明文显示的 表单模型的字段类型 在第一个表单模型中使用了两个字段类型,分别是StringField和PasswordField,并且在页面输入密码是也能够将密码以非明文的形式显示...DateField,日期选择 DateTimeField,日期时间选择 文件上传相关类型 FileField,文件单选 MultipleFileField,文件多选 其他类型 SubmitField,提交表单按钮 FieldList
在Flask中,为了处理web表单,我们一般使用Flask-WTF扩展,它封装了WTForms,并且它有验证表单数据的功能。...安装Flask-WTF扩展 pip3 install Flask-WTF WTForms支持的HTML标准字段 字段对象 说明 StringField 文本字段 TextAreaField 多行文本字段...SelectField 下拉列表 SelectMultipleField 下拉列表,可选择多个值 FileField 文本上传字段 SubmitField 表单提交按钮 FormField 把表单作为字段嵌入另一个表单 FieldList...StringField, PasswordField, SubmitField # 导入表单的验证器 from wtforms.validators import DataRequired, EqualTo...label="提交") @app.route("/register", methods=["GET", "POST"]) def register(): # 创建表单对象, 如果是post请求,前端发送了数据
WTForms 是一个 Flask 集成的框架,也可以说是库。用于处理浏览器表单提交的数据。...它在 Flask-WTF 的基础上扩展并添加了一些随手即得的精巧的帮助函数, 这些函数将会使在 Flask 里使用表单更加有趣。...Flask-WTF 是集成 WTForms,并带有 csrf 令牌的安全表单和全局的 csrf 保护的功能。...Part2:WTForm 支持的字段与验证器 WTForms 支持 HTML 字段: 1.字段类型说明 StringField—文本字段, 相当于 type 类型为 text 的 input 标签 TextAreaField...import Flask,render_template,request,flash #导入wtf扩展的表单类 from flask_wtf import FlaskForm #导入自定义表单需要的字段
4.文件上传 Flask-WTF 提供 FileField 来处理文件上传,它在表单提交后,自动从 flask.request.files 中抽取数据。...由于Flask-WTF插件本身不提供字段类型,因此我直接从WTForms包中导入了四个表示表单字段的类。每个字段类都接受一个描述或别名作为第一个参数,并生成一个实例来作为LoginForm的类属性。...当浏览器向服务器提交表单数据时,通常会使用POST请求(实际上用GET请求也可以,但这不是推荐的做法)。之前的“Method Not Allowed”错误正是由于视图函数还未配置允许POST请求。...当浏览器发起GET请求的时候,它返回False,这样视图函数就会跳过if块中的代码,直接转到视图函数的最后一句来渲染模板。 当用户在浏览器点击提交按钮后,浏览器会发送POST请求。...当form.validate_on_submit()返回True时,登录视图函数调用从Flask导入的两个新函数。 flash()函数是向用户显示消息的有效途径。
与此同时,Flask的扩展Flask-WTF更进一步地整合了WTForms,为开发者提供了更便捷、灵活的表单处理方式。...Flask-WTF是建立在WTForms之上的Flask扩展,旨在简化Web应用中表单处理的流程。它提供了与Flask框架的无缝集成,使得表单的创建、验证和渲染变得非常容易。...Flask集成: 与Flask框架无缝集成,通过简单的导入和初始化,即可在Flask应用中使用Flask-WTF提供的表单处理功能。...通过Flask-WTF,开发者能够以更高效的方式处理Web应用中的表单,减少重复性工作,提升开发效率。...from flask import Flask, render_template, requestfrom flask_wtf import FlaskFormfrom wtforms import StringField
与此同时,Flask的扩展Flask-WTF更进一步地整合了WTForms,为开发者提供了更便捷、灵活的表单处理方式。...Flask-WTF是建立在WTForms之上的Flask扩展,旨在简化Web应用中表单处理的流程。它提供了与Flask框架的无缝集成,使得表单的创建、验证和渲染变得非常容易。...Flask集成: 与Flask框架无缝集成,通过简单的导入和初始化,即可在Flask应用中使用Flask-WTF提供的表单处理功能。...通过Flask-WTF,开发者能够以更高效的方式处理Web应用中的表单,减少重复性工作,提升开发效率。...(BooleanField, DecimalField, DateField, DateTimeField, FieldList, FloatField, FormField, IntegerField
一.安装 pip3 install wtforms 二.简单使用 1.创建flask对象 from flask import Flask, render_template, request, redirect...templates') app.debug = True 二.生成form组件 class LoginForm(Form): # 字段(内部包含正则表达式) name = simple.StringField... 三.相关属性 1.field字段 WTForms支持HTML字段: 字段类型 说明 StringField...下拉列表 SelectMultipleField 下拉列表, 可选择多个值 FileField 文件上传字段 SubmitField 表单提交按钮 FormFiled 把表单作为字段嵌入另一个表单 FieldList...flask import Flask, render_template, request, redirect from wtforms import Form from wtforms.fields import
本篇主要是黑马程序员的Flask快速入门教程的笔记 Flask简介 Flask诞生于2010年,是用Python语言基于Werkzeug工具箱编写的轻量级Web开发框架。...from wtforms import SubmitField, StringField, PasswordField # 导入wtf扩展提供的表单验证器 from wtforms.validators...其中,StringField指定了表单提交的数据类型为String,DataRequired表明该项为必填项,EqualTo封装了两个表单的一致性比较过程,最后调用register_form.validate_on_submit...WTForms支持的HTML标准字段有下面这些: 字段对象 说明 StringField 文本字段 TextAreaField 多行文本字段 PasswordField 密码文本字段 HiddenField...本例中,我定义了两个接口,第一个根目录接口,分别尝试了通过sql来从直接查询和调用对象进行查询的两种查询方式,第二个/create接口,实现了向数据表Role中插入一个名称为admin的用户数据。
:是 Python 下一个被广泛应用的模板引擎,是由Python实现的模板语言,他的设计思想来源于 Django 的模板引擎,并扩展了其语法和一系列强大的功能,其是Flask内置的模板语言。...在Flask中,为了处理web表单,我们一般使用Flask-WTF扩展,它封装了WTForms,并且它有验证表单数据的功能 WTForms支持的HTML标准字段 字段对象 说明 StringField...SelectField 下拉列表 SelectMutipleField 下拉列表,可选择多个值 FileField 文件上传字段 SubmitField 表单提交按钮 FormField 把表单作为字段嵌入另一个表单 FieldList...import Flask, render_template, request, flash #导入wtf扩展的表单类 from flask_wtf import FlaskForm #导入自定义表单需要的字段...from wtforms import SubmitField,StringField,PasswordField #导入wtf扩展提供的表单验证器 from wtforms.validators import
,告诉模板引擎这个位置的值,从渲染模板时使用的数据中获取;Jinja2除了能识别基本类型的变量,还能识别{}; 视图: ?...WTForms支持的HTML标准字段 字段对象 说明 StringField 文本字段 TextAreaField 多行文本字段 PasswordField 密码文本字段 HiddenField 隐藏文本字段...SelectField 下拉列表 SelectMultipleField 下拉列表,可选择多个值 FileField 文本上传字段 SubmitField 表单提交按钮 FormField 把表单作为字段嵌入另一个表单 FieldList..."提交") @app.route("/register", methods=['GET', "POST"]) def register(): # 创建表单对象, 如果是post请求, 前端发送了数据...六 Flask中的特殊变量和方法 在Flask中,有一些特殊的变量和方法是可以在模板文件中直接访问的。
1.WTF表单验证介绍 Flask-WTF是简化了WTForms操作的一个第三方库。WTForms表单的两个主要功能是验证用户提交数据的合法性以及渲染模板。...当然还包括一些其他的功能:CSRF保护,文件上传等。安装Flask-WTF默认也会安装WTForms,因此使用以下命令来安装Flask-WTF: pip install flask-wtf。...代码如下: class RegistForm(Form): name = StringField(validators=[length(min=4,max=25)]) email = StringField...('confirm')]) confirm = StringField() DataRequired是密码必须输入的意思,EqualTo(‘confirm’)是必须相等的意思。...3.代码实现 在action中的意思是,当点击按钮之后,要把数据发送到哪个url。 method是指请求方法。同时需要注意input的name需要跟自己设置的对应。
首先我注册了一个163邮箱,需要开启smtp功能,因为咱们python发送邮件经过的是smtp.163.com(网易的电子邮件服务器)。 注册好163邮箱,然后开启smtp功能,如下图所示: ?...开启的过程中需要绑定手机。 我最终实现的样子是这样的: ? 使用flask搭建了一个web服务器,然后做了一个网页,将收件人,主题,正文填好之后,点击发送,上面会显示发送结果。...下面是整个工程的结构: ? templates是存放了两个html文件,pyMail实现所有的功能。接下来我列一下源代码,然后将发送部分的核心代码进行讲解。...MailForm(Form): receiver = StringField('收件人:',validators=[Required(),Email()]) style = StringField...最后给大家看一下发送的演示图: ? 这时候我的qq邮箱已经收到了邮件: ? 今天的分享就到这里,七夜音乐台的开发正在进行中,敬请期待,记得打赏呦。
Flask-WTF扩展可以把处理web表单的过程变成一种愉悦的体验。 一、跨站请求伪造保护 默认情况下,Flask-WTF能够保护所有表单免受跨站请求伪造的攻击。...恶意网站把请求发送到被攻击者已登录的网站时就会引起CSRF攻击。 为了实现CSRF保护,Flask-WTF需要程序设置一个密钥。.../usr/bin/env python #简单的web表单,包含一个文本字段和一个提交按钮 from flask_wtf import Form from wtforms import StringField...,validators=[Required()]) submit = SubmitField('Submit') StringField类表示属性为type="text"的元素,SubmitField...WTForms支持的HTML标准字段 字段类型 说明 StringField 文本字段 TextAreaField 多行文本字段 PasswordField 密码文本字段 HiddenField 隐藏文本字段
这次给大家带来的是一个非常小的Flask案例,刚好也与我们之前学习的Flask知识紧紧相结合。 首先看一下做出来的效果: ?...首先,我们需要通过flask_sqlalchemy来创建我们的数据表以及里面的数据: from flask import Flask,render_template from flask_sqlalchemy...第一步我们成功做完,成功的通过flask_sqlalchemy创建了数据表和数据的导入。 既然数据解决了,接下来就是来写前端相关的东西了。...接下来我们再为这个项目添加一个删除功能,整体的思路很简单,通过get请求拿到前端发送过来的book_id,后端再对这个book_id进行删除处理。...import SQLAlchemy from flask_wtf import FlaskForm from wtforms import StringField,SubmitField from wtforms.validators
{% if error %}:{% 这里写代码 %},用这个包裹 {{ message }}: {{ 变量 }},插值表达式和Jmeter类似用于取值 2、使用Flask 发送邮件 安装依赖: pip...install Flask-Mail 没啥可说的,就是发送邮件功能,这里我用qq邮箱为例,示例代码如下: from flask import Flask from flask_mail import Mail...: send(): 发送Message类对象的内容 connect(): 建立与邮件主机连接 send_message(): 发送消息对象 3、Message类方法 attach() - 为邮件添加附件...add_recipient() - 向邮件添加另一个收件人 3、Flask WTF的使用 安装依赖 pip install flask-WTF 举个栗子 主要用于表单的处理验证,先上模版loginForm.html.... from flask_wtf import FlaskForm from wtforms import StringField, PasswordField, SubmitField, BooleanField
获取到上传上来的文件后,使用avatar.save(路径)方法来保存文件。、 从服务器上读取文件,应该定义一个url与视图函数,来获取指定的文件。...使用flask_wtf对上传文件使用表单验证: 定义表单的时候,对文件的字段,需要采用FileField这个类型。 验证器应该从flask_wtf.file中导入。...2. cookie有域名的概念:只有访问同一个域名,才会把之前相同域名返回的cookie携带给服务器。也就是说,访问谷歌的时候,不会把百度的cookie发送给谷歌。...浏览器以后再请求我们服务器的时候,就会把这个session_id自动的发送给服务器,服务器再从cookie中提取session_id,然后从服务器的session容器中找到这个用户的相关信息。...这样就可以达到安全识别用户的需求了。 cookie存储到客户端:原理是,客户端发送验证信息过来(比如用户名和密码)。
'] = 'hard to guess string' 定义表单 from flask_wtf import Form from wtforms import StringField, SubmitField...', validators=[DataRequired()]) submit = SubmitField('Submit') Form基类由Flask-WTF扩展定义,所以从flask_wtf中导入...,字段和验证函数却可以直接从WTForms中导入 NameForm表单中有一个名为name的文本段和一个名为submit的提交按钮。...StringField类表示属性为type=’text’的input元素。SubmitField类表示属性为type=”submit”的input元素。...Web开发-基于Python的Web应用开发实战》
领取专属 10元无门槛券
手把手带您无忧上云