from flask import Flask, render_template

app = Flask(__name__)


# 定义类用于参数传递
class User:
    """
    对于参数age是后续加上去的,因为前期已经对于类进行过实例化了,所以在增加参数时,最好给上一个默认值.
    不然之前的写法都要重新修改.
    """
    def __init__(self, name, e_mail, age=18):
        self.name = name
        self.e_mail = e_mail
        self.age = age


@app.route("/")
def hello_world():
    # 控制语句 if 的使用
    user = User("Tina", "", 17)
    # 控制语句 for 的使用, 注意在Jinja2模板中for循环是没有break语句的.
    # 图书信息列表
    books = [{
        "name": "三国演义", "author": "罗贯中"
    }, {
        "name": "水浒传", "author": "施耐庵"
    }, {
        "name": "红楼梦", "author": "曹雪芹"
    }, {
        "name": "西游记", "author": "吴承恩"
    }]
    return render_template("control.html", user=user, books=books)


if __name__ == "__main__":
    app.run(host="0.0.0.0", port=5001, debug=True)

效果:

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>控制语句使用</title>
</head>
<body>
<!--这里是Jinja2模板的规则.-->
<!--if语句-->
{% if user.age<18 %}
  <div>对不起{{ user.name }},你还未成年,不能进入网吧.</div>
{% else %}
  <div>恭喜你{{ user.name }},你已成年,可以进入网吧.</div>
<!--Jinja2模板中if语句要有endif结束符-->
{% endif %}
<!--for语句, books为传过来的图书信息-->
<div>图书信息:<br></div>
{% for book in books %}
<div>
    书名: {{ book.name }}, 作者: {{ book.author }} <br>
</div>
{% endfor %}
</body>
</html>
control.html

 

posted on 2024-03-21 13:22  子线  阅读(20)  评论(0)    收藏  举报