139. Python语言 的 Flask框架项目前导 之 模板 第四章 :宏 和 import 语句

49 篇文章 0 订阅
22 篇文章 0 订阅

本章主题

  

关键词

  

  模板中的 跟 Python 中的 函数 类似,可以 传递参数,但是 不能有返回值,可以将⼀些 经常⽤到代码⽚段 放到宏中,然后把⼀些 不固定的值 抽取出来当成⼀个 变量

{% macro input(name, value='', type='text') %}
	<input type="{{ type }}" name="{{ name }}" value="{{ value }}" >
{% endmacro %} 

  以上例⼦可以抽取出了⼀个 <input> 标签,指定了⼀些 默认参数。那么我们以后创建 <input> 标签的时候,可以通过他快速的创建:

<p>{{ input('username') }}</p>
<p>{{ input('password', type='password') }}</p>

  

import语句

  在真实的开发中,会将⼀些 常⽤的宏 单独 放在⼀个⽂件中,在需要使⽤的时候,再从这个⽂件中进⾏导⼊。

  import 语句的⽤法跟 Python 中的 import 类似,可以直接 import...as...,也可以 from...import... 或者 from...import...as...

  假设现在有⼀个⽂件,叫做 forms.html,⾥⾯有两个宏分别为 inputtextarea

forms.html:
{% macro input(name, value='', type='text') %}
	<input type="{{ type }}" value="{{ value|e }}" name="{{ name }}">
{% endmacro %}

{% macro textarea(name, value='', rows=10, cols=40) %}
	<textarea name="{{ name }}" rows="{{ rows }}" cols="{{ cols
	}}">{{ value|e }}</textarea>
{% endmacro %} 

  

导入宏的例子

  1. import...as... 形式 :
{% import 'macro.html' as macro %}
<tr>
	<td>⽤户名:</td>
	<td>{{ macro.input('username') }}</td>
</tr> 
  1. from...import...as... / from...import... 形式 :
{% from "macro.html" import input %} 2 <tr> 3 <td>密码:</td> 4 <td>{{ input("password",type="password") }}</td> 5 </tr>

  另外需要注意的是,导⼊模板并不会把当前上下⽂中的变量添加到被导⼊的模 板中,如果你想要导⼊⼀个需要访问当前上下⽂变量的宏,有两种可能的⽅法:

  • 显式地传⼊请求或请求对象的属性作为宏的参数;
  • 与上下⽂⼀起(with context)导⼊宏。

  与上下⽂中⼀起(with context)导⼊的⽅式:

{% import 'macro.html' as macro with context %}

  

总结小便条

本篇文章主要讲了以下几点内容:

  

  本章回顾暂时就到这了,如果还有点晕,那就把文章里所有引用的案例代码再敲几遍吧。拜拜~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值