flask-模板使用
flask-模板使用
- 模板方法:
- 模板中的url_for跟后台视图的url_for使用起来基本是一样的,也可以传递参数
- 使用方式
{{ url_for('func') }}
- 过滤器:
- 过滤器是通过管道符号 | 进行使用的,例如: {{ name|length }}, 将返回name的长度。过滤器相当于一个函数,把当前的变量传递到过滤器中, 然后根据过滤器自己的判断。再返回相应的值,之后在将结果渲染。
- 常用的内置过滤器:
- abs(value) : 返回一个数值的绝对值。
- -1|abs
- default(value, default_value, boolean=false) : 如果当前的变量没有值,则使用参数中的值来代替。 name|default('ivy') -- 如果name不存在,则使用ivy来代替。boolean=false默认是在这个变量为undefined的时候才会使用的default的值。当这个变量又被定义,但是这个变量为Flase(None , False, 及其各种数据类型的空类型)时,会返回相应的值,这时候只要将boolean=True,就会渲染默认的值。
- or:
- {{ value1 or value2 }} 和python自带的or一样。
- escape(value)或e: 转义字符,会将 < 、> 等符号转义成html中的符号.
- content|escape 或者 content|e
- safe(value): 关闭自动转义
- {{ content|safe }}
- first(value) 返回一个序列的第一个元素。 name|first
- format(value, *args, **kwargs) : 格式化字符串:
- {{ "%s" - "%s"|format('hello', 'world') }}
- last(value): 返回一个序列的最后一个元素
- name|last
- length(value)
- name|length
- join(value, format_key): 跟python的join一样
- int(value): 转换为int整型
- float(value): 转换为float类型
- lower(value): 转换为小写
- upper(upper): 转换为大写
- replace(value, old, new): 字符串替换
- truncate(value, length=255, killwords=False): 截取length长度的字符串
- striptags(value): 删除字符串中的所有html标签,如果出现空格,将替换成一个空格
- trim: 截取字符串前面和后面的空白字符串
- 更多的过滤器:http://docs.jinkan.org/docs/jinja2/templates.html#builtin-filters
- 自定义过滤器:
- 过滤器本身是一个可以在模板中使用的函数,然后对传进来的参数做一定的处理返回给模板
- 自定义的过滤器需要在flask中注册
- 过滤器的第一个参数是使用过滤器的模板变量,过滤器的返回结果是过滤器的返回值。
- 下面实现一个简单的性别转换的过滤器
from flask import Flask, render_template app = Flask(__name__) @app.route('/')
def index():
context = {
'sex': 1
}
return render_template('index.html', **context) @app.template_filter('sex_trans')
def sex_trans(value):
rote = {
1: 'male',
0: 'female'
}
return rote.get(value) if __name__ == '__main__':
app.run()
- 自定义过滤器:
- 模板标签
- {% autoescape off %} content {% endautoescape %}
- 将content里面的内容取消转义
- {% if ...... %} do something {% else %} do something {% endid %}
- 条件判断
- {% for sth in sths %} do something about {{ sth }} {% endfor %}
- for 循环
- for 循环可以接range函数
- for 循环中配合使用
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{% for i in range(0,10) %}
<p>{{ i }} - {{ loop.index }} - {{ loop.first }} - {{ loop.last }} - {{ loop.length }} - {{ loop.nextitem }}</p>
{% endfor %}
</body>
</html>- loop.index: 返回该次for循环的次数,默认从1开始排序
- loop.index0: 制定for循环从第几次开始排序,返回当次的次数
- loop.first: 判断是否为第一次for循环,返回bool值
- loop.last:
- loop.length:返回for循环的总次数
- loop.nextitem:返回for循环的下次的值
- {% autoescape off %} content {% endautoescape %}
- 加载静态文件
- flask加载静态文件采用url_for函数
- {{ url_for('static', filename='静态文件的路径') }}
- url_for的第一个参数是加载静态文件的文件夹的名字,默认为static, filename为你的静态资源相对static文件的相对路径。
- flask加载静态文件采用url_for函数
flask-模板使用的更多相关文章
- flask模板的基本用法(定界符、模板语法、渲染模板),模板辅助工具(上下文、全局对象、过滤器、测试器、模板环境对象)
flask模板 在动态web程序中,视图函数返回的HTML数据往往需要根据相应的变量(比如查询参数)动态生成. 当HTML代码保存到单独的文件中时,我们没法再使用字符串格式化或拼接字符串的当时在HTM ...
- flask模板,路由,消息提示,异常处理
1.flask的路由与反向路由 from flask import Flask, request, url_for app = Flask(__name__) @app.route('/') def ...
- Flask - 模板语言jinja2 和render_template高级用法
目录 Flask - 模板语言jinja2 和render_template高级用法 一. 字典传递至前端 二. 列表传入前端Jinja2 模板的操作: 三. 大字典传入前端 Jinja2 模板 四. ...
- Flask模板渲染
目录 Flask模板渲染 Jinja2模板引擎简介 模板 Jinja2 模板变量 变量 控制结构 宏,类似Python代码中的函数 模板继承 包含(Include) 过滤器 链式调用 常见内建过滤器 ...
- Flask模板注入
Flask模板注入 Flask模板注入漏洞属于经典的SSTI(服务器模板注入漏洞). Flask案例 一个简单的Flask应用案例: from flask import Flask,render_te ...
- 实验2、Flask模板、表单、视图和重定向示例
实验内容 1. 实验内容 表单功能与页面跳转功 能是Web应用程序的基础功能,学习并使用他们能够更好的完善应用程序的功能.Flask使用了名为Jinja2的模板引擎,该引擎根据用户的交互级别显示应用程 ...
- Flask 模板语言
Flask使用的是Jinja2模板引擎 举个例子: from flask import Flask, render_template app = Flask(__name__) @app.route( ...
- Flask模板_学习笔记
代码尽在我的github上面:https://github.com/521xueweihan 概述: 在Flask中,Jinja2默认配置如下: A.扩展名为.html,.htm, ...
- ThinkPhp模板转Flask模板
Template Converter 网上的PHP资源很多,项目要用Python,所以想起做一个模板转换器,从ThinkPhp转成Flask的Jinja模板. 直接指定两个目录,将目录下的模板文件转换 ...
- flask模板
做为python web开发领域的一员,flask跟Django在很多地方用法以都是相似的,比如flask的模板 模板就是服务器端的页面,在模板中可以使用服务端的语法进行输出控制 1.模板的工作原理 ...
随机推荐
- 使用StreamHttpResponse和FileResponse下载文件的注意事项及文件私有化
为什么需要编写下载视图方法? 你或许知道,我们上传的文件默认放在media文件夹中的,且Django会为每个上传的静态文件分配一个静态url.在模板中,你可以使用{{ mymodel.file.url ...
- AspNetCore3.1_Middleware源码解析_3_HttpsRedirection
概述 上文提到3.1版本默认没有使用Hsts,但是使用了这个中间件.看名字就很好理解,https跳转,顾名思义,就是跳转到 https地址. 使用场景,当用户使用http访问网站时,自动跳转到http ...
- Docker深入浅出系列 | 5分钟搭建你的私有镜像仓库
Docker已经上市很多年,不是什么新鲜事物了,很多企业或者开发同学以前也不多不少有所接触,但是有实操经验的人不多,本系列教程主要偏重实战,尽量讲干货,会根据本人理解去做阐述,具体官方概念可以查阅官方 ...
- 吐血干货,直播首屏耗时400ms以下的优化实践
导读: 直播行业的竞争越来越激烈,进过18年这波洗牌后,已经度过了蛮荒暴力期,剩下的都是在不断追求体验.最近在帮做直播优化首开,通过多种方案并行,把首开降到500ms以下,希望能对大家有借鉴. 背景: ...
- 题解 NOIP2018【赛道修建】—— 洛谷
这道题有一点点树上dp的意思(大佬轻喷 我刚拿到这道题的时候毫无头绪,只知道这道题要二分答案 为什么是二分答案??? 题目: 目前赛道修建的方案尚未确定.你的任务是设计一 种赛道修建的方案,使得修建的 ...
- (转)USB的VID和PID,以及分类(Class,SubClass,Protocol)
USB的VID和PID,以及分类(Class,SubClass,Protocol) 原文地址:http://blog.csdn.net/gaojinshan/article/details/78783 ...
- libfastcommon总结(二)从文件中加载配置信息
头文件为ini_file_reader.h 主要接口 IniContext iniContext;//定义配置文件信息 iniLoadFromFile();//加载文件为结构化配置信息 iniG ...
- JVM收集器简介
JVM GC收集器集合:
- 【WebGL】WebGL API 详解
基于 WebGL Specifications 最全面的API释疑. 类型以及对象定义 这部分内容主要定义一部分类型和数据结构. typedef unsigned long GLenum; typed ...
- IOS抓包工具Stream——让移动端的抓包变得轻而易举
有一天下晚班回家,在地铁上的时候,开发发来信息说,能不能把之前创建的bug再抓包看下数据.顿时心里就想,在地铁上,我上哪抓包去.之后百度了下,发现ios有一款非常实用的抓包工具,大家可以上App St ...