前言
Template是MVC中的View,MTV中的Template
主要用来做数据展示,本次讲的是Flask中的模板概念
一、模板的基础语法
1.数据传递
模板语言动态生成的html
{{ var }} 变量的接收
从views传递过来的数据
前面定义出来的数据
@blue.route('/test/')
def test():
name='666'
return render_template('test.html',name=name)
<h>数据接收{{name}}<h/>
2.模板继承
在有多个页面有共同元素时可以使用模板继承
模板页面-nev.html
{%block content%}
<h>666<h/>
{%endblock%}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>
{% block title %}
{% endblock %}
</title>
{% block ext_css %}
{% endblock %}
</head>
<body>
{% block header %}
{% endblock %}
{% block content %}
{% endblock %}
{% block footer %}
{% endblock %}
{% block ext_js %}
{% endblock %}
</body>
</html>
继承页面
{%extends 'nev.html'%}
继承页
模板的继承不仅可以共享数据,还可以共享结构
首次出现挖坑操作
第二次出现填坑操作
第N次出现,填坑操作,会覆盖前面填的坑
不想被覆盖,需要添加 {{ super() }
include
包含,将一个指定的模板包含进来
3.宏定义
注意:在模板中没有单身狗,都是成对出现的
(1)无参
{% macro say()%}
你饿了吗???
{% endmacro %}
调用:{ { say() } }
(2)有参
{% macro createUser(name,age)%}
欢迎{{ name }} 心理没点数吗 你都{{ age }}大了
{% endmacro %}
(3)外文件中的宏定义调用需要导入也可以include
{% macro getUser(name)%}
欢迎光临红浪漫{{ name }},拖鞋手牌拿好,楼上2楼左转,男宾一位
{% endmacro %}
{% from ‘html文件’ import yyy %}
{{ getUser(‘action’) }}