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

服务端代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#在模板中我们能不能使用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)

前端代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
前端代码(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>
    <!--
        作者:996298929@qq.com
        时间: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标签

服务端代码:

1
2
3
4
5
6
7
8
9
10
#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)

前端代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
前端代码(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继承,页面继承)

服务端代码:

1
2
3
4
5
6
7
8
9
10
#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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
前端代码:
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 %}


本文转自 TtrToby 51CTO博客,原文链接:http://blog.51cto.com/freshair/1927426

上一篇:Ubuntu 常用的录屏、截图、Gif 软件!


下一篇:zabbix_agentd报错汇总