flask框架--模板
今天又是一个精彩又无聊的一天,不过随着知识的缓慢的增加我的内心也充满了干劲,虽然前进的有些缓慢 但我不会这么容易放弃的,一定要相信自己,不要灰心
好了 ~ 不说废话了 , 我自己听的都有些受不了了 。
我呢 , 今天学习了模板,在这里我给大家说说几句 关于模板的
首先说一下模板的作用:模板可以承担视图函数又可以返回响应的内容
视图函数只负责业务逻辑和数据处理(业务逻辑方面),而模板则取到视图函数的数据结果进行展示(视图展示方面)
代码结构清晰,耦合度底。
模板引擎有很多,不过在这里我给大家说的是Jinjia2 ,它是在Python下一个被广泛应用的模板引擎,是有Python实现的模板语言,他的设计思想来源于Django的模板引擎,并扩展了其语法金和一系列强大的功能,其实Flask内置的模板语言。
模板语言:是一种被设计来自动生成文档的简单文本格式,在模板语言中,一般都会把一些变量传给模板,途欢模板的特定文职上预先定义好的占位变量名。
渲染模板函数:Flask提供的render_template函数封装了该模板引擎,render_template 函数的第一个参数是模板的文件名,后面的参数都是键值对,表示模板中变量对应的真实值。
{{}} 来表示变量名,这种语法叫做变量代码块,在变量代码块中可以是任意Python类型或者对象,只要能够被转换成str()类型就可以,{%%} 用这个来定义的控制块代码,可以实现一些语言层次的功能,比如循环语句或者if语句,{##} 使用这个符号进行注释,注释的内容不会再html中被渲染出来。
接下来我给大家展示一个实例:
第一步 当然先导入模块啦
from flask import,render_template
建立对象
app = Flask(__name__)
导入配置文件 #我喜欢这个方法,当然也可以用其他的方法
app.config.from_pyfile('config.ini')
路由
@app.route('/')
def index():
context = {}
context['my_str'] = ‘你好世界’
context['my_int'] = 100
context['my_list'] = [4,3,2,4,2,3]
context['my_dict'] = {'name':'xiaoming','age':19}
使用render_template模块来渲染模板文件,通过第二个参数传递数据变量,通过**引用来将嵌套dict直接传递给模板
return render_template('day3.html',**context)
if __name__ == "__main__":
app.run()
这是一个模板文件,还得写一个day3.html的文件的网页模板
接下来说一下过滤器:
过滤器的本质就是函数。有时候我们不仅仅只是需要输出变量的值,我们还需要修改变量的显示,甚至格式化,运算等等,而在模板中是不能直接调用Python中的某些方法,那么过滤器的作用就找到了。
使用方法:变量名|过滤器 {{variable | filter_name(*args)}},如果没有任何参数传给过滤器,则可以把括号省略掉 ,
链式调用:{{“helloworld”|reverse|upper}}
常见内建过滤器,字符串操作, safe:禁用转义 <p>{{'<em>hello</em>'|safe}}</p>
capitalize:把变量值得首字母转成大写,其余字母小写 <p>{{'hello'|capitalize}}
lower:把值转成小写 <p>{{'HELLO'|lower}}</p>
upper:把值转换成大写 ,title:把值中的每个单词的首字母都转换成大写 , reverse:字符串反转,formate:格式化输出 <p>{{'%s is %d |formate{'name',17}'}}</p>
striptags:渲染之前把值中所有的HTML标签都删掉 <p>{{'<em>hello</em>'|striptags}}</p>
truncate:字符串截断 <p>{{'hello every one'|truncate(9)}}</p>
接下来是列表操作:
first:取第一个元素 <p> {{[1,2,3,4] | first}}</p>
last :取最后一个元素,
length : 获取列表长度
sum:列表求和
sort:列表排序
语句块操作:
{%filter upper%}
#一段文字#
{%endfilter%}
控制块代码:
if语句
{% if %} {% elif %}
{% endif %}
循环语句:
{% for %}
{% endfor %}
就写这些了 , 我要开始复习了 接下来的 什么时候有空在写 。
flask框架--模板的更多相关文章
- Python——Flask框架——模板
一.渲染模板 render_template 函数把Jinja2模板引擎集成到程序中 二.Jinja2变量过滤器 过滤器名 说明 safe 渲染值是不转义 capitalize 把值得首字母转换成大写 ...
- flask框架模板系统
flask模板引擎 flask默认使用了Jinja2模板引擎,我们在使用模板的时候,需要在同级目录文件夹下 创建一个templates的文件夹,然后这个文件夹内放置我们想要的模板实例即可: 在正常普通 ...
- flask框架学习
第一:flask框架基础入门 第二:flask框架框架概述 第三:flask框架请求数据 第四:flask框架路由系统 第五:flask框架静态文件 第六:flask框架模板引擎 第七:flask其他 ...
- flask框架下的jinja2模板引擎(2)(过滤器与自定义过滤器)
flask框架下的jinja2模块引擎(1):https://www.cnblogs.com/chichung/p/9774556.html 这篇论文主要用来记录下 jinja2 的过滤器. 什么是过 ...
- flask框架下的jinja2模板引擎(1)(模板渲染)
#转载请留言联系 模板是什么? 在 flask 框架中,视图函数有两个作用:处理业务逻辑和返回响应内容.在大型应用中,把业务逻辑和表现内容放在一起,会增加代码的复杂度和维护成本.模板作用即是承担视图函 ...
- flask框架下的jinja2模板引擎(3)(模板继承与可以在模板使用的变量、方法)
flask 框架下的jinja2模块引擎(1):https://www.cnblogs.com/chichung/p/9774556.html flask 框架下的jinja2模块引擎(2):http ...
- Flask框架(二)—— 反向解析、配置信息、路由系统、模板、请求响应、闪现、session
Flask框架(二)—— 反向解析.配置信息.路由系统.模板.请求响应.闪现.session 目录 反向解析.配置信息.路由系统.模板.请求响应.闪现.session 一.反向解析 1.什么是反向解析 ...
- Flask框架 请求与响应 & 模板语法
目录 Flask框架 请求与响应 & 模板语法 简单了解Flask框架 Flask 框架 与 Django 框架对比 简单使用Flask提供服务 Flask 中的 Response(响应) F ...
- Flask框架(2)-JinJa2模板
为了把业务逻辑和表现逻辑分开,Flask把表现逻辑移到JinJa2模板,模板是一个包含响应文本的文件.它用占位变量表示动态部分,其具体要从请求上下文才知道. 把真实值替换掉占位变量成为渲染,JinJa ...
随机推荐
- Github 快速上手实战教程
一.实验介绍 1.1 实验内容 本次课程讲的是在实验楼的在线环境中,如何使用 Github 去管理在在线环境中使用的代码.配置.资源等实验相关文件,怎样去添加.同步和下拉在远程仓库中的实验文件,以此来 ...
- boost--signal
1.signals2库 signals2库实现了线程安全的观察者模式,在signals2中观察者模式被称为信号/插槽(signals/slots),它是一种函数回调机制.一个信号可以关联一个或多个插槽 ...
- nginx自动启动脚本
#!/bin/bash#nginx - this script starts and stops the nginx daemin # # chkconfig: - 85 15 # descripti ...
- CodeForces 916B Jamie and Binary Sequence (changed after round) (贪心)
题意:给定两个数字n,m,让你把数字 n 拆成一个长度为 m 的序列a1,a2,a3...am,并且∑2^ai = n,如果有多组,要求序列中最大的数最小,然后再相同就要求除了最大数字典序最大. 析: ...
- 2014年的最后一个程序,却成为了2015年的第一个bug
这个点不睡觉的程序员,要么就是在努力学技术,要么就是代码出bug了.而我,是后者.呵呵,2015了,觉还是要睡的
- PHP上传文件参考配置大文件上传
PHP用超级全局变量数组$_FILES来记录文件上传相关信息的. 1.file_uploads=on/off 是否允许通过http方式上传文件 2.max_execution_time=30 允许脚本 ...
- STS启动失败:Failed to load the JNI shared library
版本位不一致 jdk 版本 ↓ eclipse 版本(%STS_HOME%/STS.ini)
- C语言实现BMP图片生成
## #include <stdio.h> #include <stdlib.h> #include <string.h> typedef unsigned cha ...
- CGLIB介绍
一.什么是CGLIB? CGLIB是一个功能强大,高性能的代码生成包.它为没有实现接口的类提供代理,为JDK的动态代理提供了很好的补充.通常可以使用Java的动态代理创建代理,但当要代理的类没有实现接 ...
- 主题模型之潜在语义分析(Latent Semantic Analysis)
主题模型(Topic Models)是一套试图在大量文档中发现潜在主题结构的机器学习模型,主题模型通过分析文本中的词来发现文档中的主题.主题之间的联系方式和主题的发展.通过主题模型可以使我们组织和总结 ...