【Flask专题】12.模板-循环loop和宏(PyCharm)

【Flask专题】12.模板-循环loop和宏(PyCharm),第1张

模板-循环loop和宏(PyCharm)

模板-循环loop和宏(PyCharm)
  • 模板-循环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>

类似于函数,只不过在模板中定义宏就是定义函数,调用宏
步骤:

  1. 定义:macro.html
    {% macro 宏名(参数) %}
    使用各种模板语法:for、if… + html标签
    {% endmacro %}

  2. 使用宏:
    导入宏文件:
    {% 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>

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/917582.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存