1.自定义过滤器

自定义的过滤器,过滤器本质上是一个函数,当自带的过滤器不满住要求的时候,我要进行重写

过滤器注册有两种方式

1.app.add_template_filter(自定义过滤器的名字,‘被引用时的名字’)
2.@app.template_filter(‘被引用时的名字’)

def my_reverse(value):print('自定义的过滤器')value_later = value[::-1]return value_later
app.add_template_filter(my_reverse,'my_reverse')@app.template_filter('maopaosort')
def maopao(value):for j in range(len(value)):for i in range(len(value)-1-j):if value[i]>value[i+1]:value[i],value[i+1]=value[i+1],value[i]return value@app.route('/info')
def info():list1 = [1,2,3,4,5]return render_template('myreverse.html',list1=list1)

可以在HTML页面应用如下
{{ 变量|过滤器 }}

{{ list1|my_reverse }}
{{ [7,5,6,9,100,5,1]|maopaosort }}

注意过滤器一定要加到app里面,不然运行py文件的时候不承认它为自定义的过滤器,会报错

2.flash

注意在使用flash的时候必须要设置密匙,因为flash是基于session的
博主一般是将密匙设置在ini文件里然后在py文件中配置文件

#简易版本的密匙,单引号里面随便写
SECRET_KEY = 'hahahahaha'

py文件

#配置文件
app.config.from_pyfile('./config.ini')
@app.route('/info')
def info():#消息队列flash('这是消息队列传递过来的东西')return render_template('flash.html')

HTML页面

{% for msg in get_flashed_messages() %}{{ msg }}
{% endfor %}

可以在页面中将flash里面的字符串打印出来

flash的详细介绍
1 设置flash
1.1 flash("要传递的值",category="分类的名称"),如果不传默认是message本质:session['_flash']
2取flash设置的值我们用get_flashed_messages
2.1 get_flashed_messages(with_categories=False, category_filter=()),
2.1.1如果不传递 category_filter,取出上面存储的所有分类传递的值
2.1.2如果不传with_categories就只取值,不取分类的名字,如果传值,就获取 分类名和分类值3 这个flash只能一个视图函数中取,只要有一个视图函数取过了,那其他视图函数就不能获取
本质:session.pop("_flash")
3.1 但是在同一个视图函数里面可以无限的取值

3.form表单

首先我们要在虚拟环境里面下载flash_wtf

pip install flask_wtf

然后就可以使用flask_wtf里面的方法了

from flask_script import Manager
from flask import Flask, render_template, flash, request,make_response
from flask_wtf import FlaskForm
from wtforms import StringField,SubmitField,PasswordField
from wtforms.validators import DataRequired
app = Flask(__name__)
#这个是自带的csrf验证,如果不关闭那么后面则一直验证未通过
app.config['WTF_CSRF_ENABLED'] = False#配置文件
app.config.from_pyfile('./config.ini')manger = Manager(app)#自定义一个表单
class LoginForm(FlaskForm):
#validators是验证,如果不写会报空
#用户名,这个是labalusername =  StringField('用户名',validators=[DataRequired('输入用户名')])pwd = PasswordField('密码',validators=[DataRequired('输入密码')])sub = SubmitField('登陆')@app.route('/login',methods=['get','post'])
def login():csrf_token = 'sadasdasdasdsa'loginform = LoginForm()if request.method =='GET':response = make_response(render_template('login.html',form=loginform,csrf_token=csrf_token))response.set_cookie('csrf_token',csrf_token)return responseelif request.method == 'POST':#取出cookie中的csrf_tokencookie_csrf = request.cookies.get('csrf_token')print(cookie_csrf)#取出form表单中的csrf_tokenform_csrf = request.form['csrf_token']print(form_csrf)print(request.form.get('csrf_token'))#对比if cookie_csrf != form_csrf:return 'csrf校验未通过'if loginform.validate_on_submit():print('进入验证')else:print('验证未过')return 'ok'if __name__ == '__main__':manger.run()
1.validators不写

2.HTML页面的代码
<form method="post"><input type="hidden" name="csrf_token" value={{ csrf_token }}>{{ form.username.label }}{{ form.username }}{{ form.pwd.label }}{{ form.pwd }}{{ form.sub }}
</form>

效果:

flask自定义过滤器,flash,form表单相关推荐

  1. flask与简单的form表单

    flask与简单的form表单 文章目录 flask与简单的form表单 视频 代码 flask html 视频 https://www.bilibili.com/video/BV17W41177oE ...

  2. django之:网页伪静态 JsonResponse form表单携带文件数据 CBV源码分析 模板语法传值 模板语法之过滤器 标签 自定义标签函数 过滤器、inclusion_tag模板的继承导入

    目录标题 一:网页伪静态 1.定义 2.如何实现 二:视图层 1.视图函数返回值问题 2.视图层返回json格式的数据 3.form表单携带文件数据 4.CBV源码分析 1.CBV和FBV: 2.CB ...

  3. layui单选框verify_layui lay-verify form表单自定义验证规则详解

    虽然layui的官方文档已经是写的比较详细,但是初次使用的时候总会懵一下,这里纪录一下lay-verify自定义验证规则的时候到底放哪. html: 提交 js: form.verify({ //数组 ...

  4. Spring MVC 第四章:Form表单验证-JSR303和Spring框架验证以及国际化语言、Filter过滤器

    Form表单的验证验证,就是在提交表单的时候进行验证是否为空,是否满足特定条件才可以创建.常见的表单有前端验证和后端验证. 其中,前端验证有:HTML验证,JS验证,Jquery验证. 后端验证有:J ...

  5. Element-ui Form表单校验-兜底校验-自定义检验规则

    用户登录表单-数据双向绑定 <template><div class="form-container"><el-form label-width=&q ...

  6. 用自定义的form表单对jqgrid数据进行检索查询

    资料如下:http://stackoverflow.com/questions/5819071/jqgrid-custom-form-to-search-data-select-box-problem ...

  7. 前端_网页编程 Form表单与模板引擎(中)

    目录 ... ... (续上篇) 四.模板引擎的基本概念 1.定义 2. 优点 五.art-template模板引擎 1.art-template模板引擎介绍 2. art-template的安装 3 ...

  8. Flask 框架(四)— 表单处理

    1.表单处理 Web 表单是 Web 应用程序的基本功能,它是 HTML 页面中负责数据采集的部件.通常情况下,表单有三个部分组成,分别是表单标签.表单域.表单按钮.表单允许用户输入数据,负责HTML ...

  9. Form表单及模板引擎

    Form表单及模板引擎 什么是Form表单 Form表单的一些属性 表单的同步提交及优缺点 通过Ajax提交表单数据 JQuery的监听表单提交事件 取消表单默认提交行为 快速获取表单中的数据 模板引 ...

最新文章

  1. 常用的 css 样式 记录
  2. 复现经典:《统计学习方法》第 3 章 k 近邻法
  3. 大家好,换博客了,希望大家多多关注
  4. nacos client 请求过程
  5. CF 459A 459B 459C 459D 459E
  6. 详解4种微服务框架接入Istio方案
  7. JAVA 支付宝退款接口
  8. linux asm函数,Linux 字符设备驱动—— ioremap() 函数解析
  9. Linux 基金会成立持续交付基金会
  10. web服务-Axis2的安装
  11. Excel—身份证生日提取
  12. mac本常用快捷键大全
  13. vue使用a标签下载文件
  14. bootbox.js文档中文版
  15. 马尔科夫matlab程序,马尔科夫链matlab代码
  16. wps的广告怎么彻底关闭
  17. html空格符的代码用转义字符怎么表示,html空格符号标签 空格符号怎么打出来HTML?...
  18. 【Python】reset_index函数
  19. html图片滤色,css--图片处理
  20. 【JZOJ5234】外星人的路径

热门文章

  1. android plist动画,用Lottie把启动界面动起来
  2. 【电子电路计算公式】 导线流过电流计算工具,我已经做成一个小工具了(源代码)
  3. 家乐福中国独立上市,是苏宁的一颗“定心丸”吗?
  4. 回车符号和换行符号的区别
  5. Unity3D 放大缩小图片
  6. 视频编辑工具:添加水印、特效、音乐、导出视频、视频转gif
  7. 设计模式分析——迭代器模式(Iterator)
  8. K8s介绍及离线安装(四)
  9. 海康威视SDK控制台程序consoleDemo获取视频通道参数
  10. Noise2Noise摘要