【Flask模板】宏的概念和基本使用

# 宏:
模板中的宏跟python中的函数类似,可以传递参数,但是不能有返回值,可以将一些经常用到的代码片段放到宏中,然后把一些不固定的值抽取出来当成一个变量。
使用宏的时候,参数可以为默认值。相关示例代码如下:

 1 1. 定义宏:
 2     ```html
 3     {% macro input(name, value=‘‘, type=‘text‘) %}
 4     <input type="{{ type }}" name="{{ name }}" value="{{
 5     value }}">
 6     {% endmacro %}
 7     ```
 8 2. 使用宏:
 9     ```html
10     <p>{{ input(‘username‘) }}</p>
11     <p>{{ input(‘password‘, type=‘password‘) }}</p>
12     ```

### 导入宏:
1. `import "宏文件的路径" as xxx`。
2. `from ‘宏文件的路径‘ import 宏的名字 [as xxx]`。
3. 宏文件路径,不要以相对路径去寻找,都要以`templates`作为绝对路径去找。
4. 如果想要在导入宏的时候,就把当前模版的一些参数传给宏所在的模版,那么就应该在导入的时候使用`with context`。示例:`from ‘xxx.html‘ import input with context`。

原文地址:https://www.cnblogs.com/chen0427/p/8476298.html

时间: 2024-07-30 19:04:16

【Flask模板】宏的概念和基本使用的相关文章

Flask模板jinja2

模板预热 在渲染模板的时候,默认会从项目根目录下的'templates'目录下查找模板. 如果不想把模板文件放在'templates'目录下,那么可以在'Flask'初始化的时候指定'template_folder'来指定模板的路径 模块传参数 1.在使用'render_template'渲染模板的时候,可以传递关键字参数.以后直接在模板中使用就可以了 2.如果你的参数过多,那么可以将所有的参数放到一个字典中,然后再传这个字典参数的时候,使用两个星号,将字典打散成关键字参数 3.如果想要再HTM

5. Flask模板

一.Jinja2模板引擎 1. 定义 ? 视图函数的主要作用是生成请求的响应,这是最简单的请求.实际上,视图函数有两个作用:处理业务逻辑和返回响应内容.在大型应用中,把业务逻辑和表现内容放在一起,会增加代码的复杂度和维护成本.本节学到的模板,它的作用即是承担视图函数的另一个作用,即返回响应内容. ? 模板其实是一个包含响应文本的文件,其中用占位符(变量)表示动态部分,告诉模板引擎其具体的值需要从使用的数据中获取.使用真实值替换变量,再返回最终得到的字符串,这个过程称为"渲染".Flas

Flask Web Development - Flask 模板1 - 模板机制&Jinja2引擎

节选自PartI Chapter3,这个chapter主要讲模板工作原理,这里讲的就是Jinja2这个模板,另外还提到了Flask-Bootstrap及Flask-Moment两个插件,前者对Flask使用Bootstrap做了些封装,后者对moment.js做了些封装.内容较多,估计分开搞. 模板存在的意义 可维护性高的代码是结构良好且整洁的. 当用户在网站注册一个账户时,他在表单里填入邮箱跟密码,并点击提交按钮.在server端就收到一个包含这些数据的request,再由Flask分发到相应

四 .Flask 模板 中间件 特殊装饰器 基础知识(使用)

一 Flask 模板 中间件 特殊装饰器 1 .Flask 模板语法直接看面效果 https://www.cnblogs.com/lovershowtime/p/11349576.html    模板  和Django模板类似 edit.html<form> asdfasdf asdfasdf asdf asdf 哈啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊 </form> login.html <!DOCTYPE html> <html lang="zh-C

总结django flask模板不同的地方

一.应用AngularJS , 对{{}}的处理不同 1.django模板使用AngularJS:{ % verbatim % }姓名: {{ firstName + " " + lastName }}{ % endverbatim % } 2.flask模板使用AngularJS:解决flask jinja2和angularJS变量冲突的方法{ % raw % } 姓名: {{ firstName + " " + lastName }} { % endraw %

flask模板语句

flask模板语句1.模板中控制语句    *Jinja2 模板同样支持控制语句,像在 {%-%} 块中,代码: 1 <html> 2 <head> 3 {% if title %} 4 <title>{{title}} - microblog</title> 5 {% else %} 6 <title>Welcome to microblog</title> 7 {% endif %} 8 </head> 9 <b

flask模板的基本用法、模板语法、渲染模板、模板辅助工具

flask模板 在动态web程序中,视图函数返回的HTML数据往往需要根据相应的变量(比如查询参数)动态生成. 当HTML代码保存到单独的文件中时,我们没法再使用字符串格式化或拼接字符串的当时在HTML代码中插入变量,这时我们需要使用模板引擎(template engine).借助模板引擎,我们可以再HTML文件中使用特殊的语法来标记变量,这类包含固定内容和动态部分的可重用文件称为模板(template). 模板引擎的作用就是读取并执行模板中的特殊语法标记,并根据传入的数据将变量替换为实际值,输

flask 模板block super()的讲解

Flask强大的地方就可以引用模板,而且非常方便. 这里不得不介绍block这个概念. 模板的文件一般放在templates文件夹下,我们这里新建一个HTML文件,存放模板,'base.html' 在这里面也,编排了整个页面的排版,里面会用到很多block的占位符. 每个block都代表一段html语句块,而这些块在哪里定义呢,可以在当前的base.html中定义,也可以在别的html中定义.反正要有一处定义,没有定义块只是没有效果而已 定义的时候,home.html 顶部必须说明继承关系(如果

flask 模板引擎

# 模板引擎 ### 蓝本使用 - 说明: 当大量视图函数放在一个文件中,很明显是不合适的.最好的时解决方案是根据需要将相关的视图函数放在单独的文件中.蓝本就是为了解决这个问题而出现的. - 使用: ```python # 导入蓝本 from flask import Blueprint # 创建对象,可以统一指定路由前缀 user = Blueprint('user', __name__, url_prefix='/user') # 添加视图函数 @user.route('/login/')