(八)流程控制 for标签和if标签

服务端代码

#在模板中我们能不能使用for循环,能不能使用if条件控制语句?答案是肯定的。除了流程控制语句外,这里还将讲述用面向对象的思想来写模板文件。
#服务端代码:
#coding:utf-8
from flask import Flask, render_template
app = Flask(__name__)

@app.route(‘/‘)
def index():
    ‘‘‘访问首页‘‘‘
    var_list = [‘tantianran‘,‘1234‘,‘元素a‘,‘aaaa‘,‘元素b‘]
    var_tuple = ("laowang","tantianran","dengwenqing")
    var_dict = {"key1":"value1","name":"tanzhenxing"}

    return render_template("example.html",
                           var_list = var_list,
                           var_tuple = var_tuple,
                           var_dict = var_dict
                        )
if __name__ == ‘__main__‘:
    app.run(debug=True)

前端代码:

前端代码(templates/example.html):
<!DOCTYPE HTML>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>jinjia2模板for标签的使用</title>
    <link rel="stylesheet" type="text/css" href="">
</head>
<body>
    <header id="header" class="">
        <h1>导航栏</h1>
    </header>
    <!--
        作者:[email protected]
        时间:2017-05-15
        描述:/header
    -->
        <article>
            <h1>遍历后端传过来的列表</h1>
            <ul>
                {% for item in var_list %}
                <li>{{ loop.index }} {{ item }}</li>
                {% endfor %}
            </ul>
            <h1>遍历后端传过来的元组</h1>
            <ul>
                {% for item in var_tuple %}
                <li>{{ loop.index }} {{ item }}</li>
                {% endfor %}
            </ul>
            <h1>遍历后端传过来的字典</h1>
            <ul>
                {% for k,v in var_dict.items() %}
                <li>{{ loop.index }} {{ k,v }}</li>
                {% endfor %}
            </ul>
        </article>
        <footer>
            <h3>页脚部分</h3>
        </footer>
</body>
</html>

二、if标签

服务端代码:

#coding:utf-8
from flask import Flask, render_template
app = Flask(__name__)
@app.route(‘/user/‘)
@app.route(‘/user/<uname>‘)
def user(uname=None):
    ‘‘‘用户测试‘‘‘
    return render_template(‘label_user.html‘, uname=uname)
if __name__ == ‘__main__‘:
    app.run(debug=True)

前端代码:

前端代码(templates/label_user.html):
<!DOCTYPE HTML>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>jinjia2模板if标签学习</title>
    <link rel="stylesheet" type="text/css" href="">
</head>
<body>
    {% if uname %}
    <h1>你好!,{{ uname }},欢迎访问</h1>
    {% else %}
    <h1>你好,我不认识你</h1>
    {% endif %}
</body>
</html>

三、页面的复用(jinjia2继承,页面继承)

服务端代码:

#coding:utf-8
from flask import Flask, render_template
app = Flask(__name__)
@app.route(‘/basetest/‘)
def basetest():
    ‘‘‘用户测试‘‘‘
    return render_template(‘new_index.html‘)

if __name__ == ‘__main__‘:
    app.run(debug=True)

前端代码:

前端代码:
1、templates/base.html
<!DOCTYPE HTML>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    {% block title %}
    <title>这是基础页面</title>
    {% endblock %}
    <link rel="stylesheet" type="text/css" href="">
</head>
<body>
    <header id=header class="">
        <h1>导航栏</h1>
    </header>
    <article>
        {% block content%}
        内容区域
        {% endblock %}
        
        <!--继承独立的页脚部分的html-->
        {% include ‘footer.html‘ %}
    </article>
</body>
</html>

2、templates/footer.html
    <footer>
        <h3>页脚部分</h3>
    </footer>

3、templates/new_index.html
<!--继承base.html页面-->
{% extends ‘base.html‘ %}

<!--重写base.html页面中的title-->
{% block title %}
<title>12345</title>
{% endblock %}

<!--重写base.html页面中的内容区域-->
{% block content%}
    内容 哈哈哈
{% endblock %}
时间: 2024-11-12 23:23:05

(八)流程控制 for标签和if标签的相关文章

jstl---&gt;Core 核心标签库-&gt;流程控制

-->if.choose.when.otherwise  <c:if>条件判断 语法1:没有本体内容  <c:if test="testCondition" var="varName" [scope="{page|request|session|application}"]/> 语法2:有本体内容 <c:if test="testCondition" [var="varName&q

Welcome to Swift (苹果官方Swift文档初译与注解二十八)---199~208页(第四章-- 流程控制)

Value Bindings (绑定值) 在switch的case中可以绑定一个或者多个值给case体中的临时常量或者变量,这个成为绑定值. 代码样例: let anotherPoint = (2, 0) switch anotherPoint { case (let x, 0):   println("on the x-axis with an x value of \(x)") case (0, let y):   println("on the y-axis with

十八、流程控制之循环中断

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace _18.流程控制之循环中断 {     class Program     {         static void Main(string[] args)         {             /**              * 循环的中断方式有四种:              * (1) br

Unit04: JavaScript 概述 、 JavaScript 基础语法 、 流程控制

Unit04: JavaScript 概述 . JavaScript 基础语法 . 流程控制 my.js function f3() { alert("唐胜伟"); } demo1.html  演示点击按钮,弹出提示框 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <

Java中的流程控制(二)

关于Java程序的流程控制(二) 关于Java程序的流程控制(二) 3.switch选择语句 switch语句用于将一个表达式的值同许多其他值比较,并按比较结果选择下面该执行哪些语句. switch(表达式){case 取值1: 语句块1 break;--case 取值n: 语句块n break; default: 语句块n+1 break;} 例子:将1~3对应的星期几的英文单词打印出来, int x=2;switch(x){ case 1: System.out.println("Monda

黑马程序员——Java基础---流程控制

一.概述 Java提供了两种基本的流程控制结构:分支结构和循环结构.其中分支结构用于是根据条件来选择执行某段代码,循环结构则是根据循环条件重复执行某段代码.分支语句有if和switch两种,循环语句有for.while和do while三种.除此之外,jdk1.5还提供了foreach循环,同时java还提供了break和continue来控制程序的循环结构. 一.正文 1.顺序结构 这是程序最常见的结构,如果没有流程控制,java就会从上到下一次执行每条语句,这个没什么可说的. 2.分支结构

C#入门经典札记_Ch04流程控制

Chapter 04 流程控制 4.1 布尔逻辑 1.var1=var2^var3 ; (^异或运算符) 2.&和| 与 &&和||的区别: 结果都是一样的,但是&&和||性能更好,尽可能的使用&&与||. 4.1.1 位运算符 1.处理的是存储在变量中的一系列位,而不是变量的值. & . | .^ . ~ <<   // var1=var2<<var3 表示var2的二进制值向左移动var3位,后面补0 >&g

Java数据类型(二)、Java运算符、流程控制

一.程序写作(创建对象的初始化过程) 1.目的/结果:输出一段话"..." 2.步骤: (1)创建一个基础类,main: (2)创建一块内存空间,用来存储这段话 ①先定义属性,name,sex,age等: ②再定义方法,需要重新创建新的class类,但不需要新的ma方法: (3)调用系统方法/库方法println,实现输出结果 ①在原有的类中创建新对象,将新的class类中的方法调用过来: ②运行,输出所有的内容. //---------------------------------

Swift学习——格式控制符和元组流程控制(二)

Swift中的格式控制符和元祖 (1)首先介绍一下元祖,元祖是关系型数据库中  例如学生表中的姓名,年龄,电话等 定义如下 var studentinfo = ("jhon",29,"123456") println(studentinfo.0) 访问的时候是通过下标来访问的. //元组本身是以一个整体存在的,如果用下标获取元祖的某一项的数据时 //可以通过点语法加下标的形式得到,这叫元祖的拆包 println("name:\(studentinfo.0)

Java语言中学习数组、运算符、流程控制的一些理解

一.数组 1.数组的概念及作用 数组是相同数据类型的元素的集合:   数组本身是引用数据类型,即对象.但是数组可以存储基本数据类型,也可以存储引用数据类型. 例如: int [] a = new int [] {1,2,3,4,5,6,}; String [] s = new String [] {"小兔","小小兔","小小小兔",} : Employee [] e = Employee [10];(Employee是自定义类). 2.数组的声