- 模板-循环loop和宏(PyCharm)
- loop.index、loop.index、loop.lenth例举
- 宏
模板中:
声明变量:
{{ set a=10 }}
使用变量:
{{ a }}
类型:
过滤器:字符串、数字、列表、字典…
流程控制:
{% if %}…{% endif %}
{% for n in data %}…{% endfor %}
函数:
{% macro 宏名(参数) %}
使用各种模板语法:for、if… + html标签
{% endmacro %}
继承:
父模板:base.html
在父模板中预设block
子模板:{% extends ‘base.html’ %}
填充block loop.index、loop.index、loop.lenth例举
loop.index:当前循环迭代的次数(从1开始)
loop.index0:当前循环迭代的次数(从0开始)
loop.revindex:到循环结束需要迭代的次数(从1开始)
loop.revindexo:到循环结束需要迭代的次数(从0开始)
loop.last:如果是最后一次迭代,为True
loop.first:如果是第一次迭代,为True
loop.lenth:序列中的项目数
goods = ['可乐', '雪碧', '芬达', '北冰洋', '椰奶']
@app.route('/goods')
def show_goods():
return render_template('goods.html', goods=goods)
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>循环loop的使用title>
head>
<body>
<table>
<tr>
<th>序号th>
<th>名称th>
tr>
{% for good in goods %}
{% if loop.last %}
<tr>
<td>{{loop.index}}td>
<td>{{good}}td>
tr>
<tr>
<td colspan="2" align="right">商品种类:{{loop.length}}td>
tr>
{% else %}
<tr>
<td>{{loop.index}}td>
<td>{{good}}td>
tr>
{% endif %}
{% endfor %}
table>
body>
html>
宏
类似于函数,只不过在模板中定义宏就是定义函数,调用宏
步骤:
-
定义:macro.html
{% macro 宏名(参数) %}
使用各种模板语法:for、if… + html标签
{% endmacro %} -
使用宏:
导入宏文件:
{% import ‘macro.html’ as ma %}
调用:
{{ ma.宏名(参数) }}
@app.route('/macro')
def show_macro():
return render_template('index4.html', goods=goods)
macro.html
{% macro input(name, id, type='text') %}
<input type="{{type}}" id="{{id}}" name="{{name}}">
{% endmacro %}
{% macro show_data(datas,clazz='a1') %}
<ul class="{{clazz}}">
{% for data in datas %}
<li>{{data}}li>
{% endfor %}
ul>
{% endmacro %}
index4.html:
{% import 'marco.html' as ma %}
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>macro的使用title>
<style>
.a1{
list-style: none;
color: hotpink;
}
style>
head>
<body>
<div>
{{ma.input('username','username')}}
div>
<div>
{{ma.input('password','password',type='password')}}
div>
{{ ma.show_data(goods)}}
body>
html>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)