flask之控制語句 if 語句與for語句

LCY133發表於2020-10-16

簡介

控制語句這些內容是寫在HTML檔案中的,
所有的控制語句都是放在{% … %}中,並且有一個語句{% endxxx %}來進行結束,因為格式比較統一而且字元多,建議將這些加入到自動補全中,參考:https://blog.csdn.net/LCY133/article/details/109098845
Jinja中常用的控制語句有if/for…in…

  • if:if語句和python中的類似,可以使用>,<,<=,>=,==,!=來進行判斷,也可以通過and,or,not,()來進行邏輯合併操作
  • for…in…:for迴圈可以遍歷任何一個序列包括列表、字典、元組。並且可以進行反向遍歷
    if 語句語法:
{% if  %}
{% else %}
{% endif %}

for語句語法:

{% for  in  %}
{% endfor %}

python程式碼:

from flask import Flask,render_template

app = Flask(__name__)
# 傳參
context = {
    'username':'lcy1992',
    'age':18,
    'books':['python','java','php'],
    'book2':{'python':666,
            'java':777,
            'php':888}
}

@app.route('/')
def if_for():
    return render_template('testControl.html',**context)

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

HTML程式碼:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<!--    HTML中的控制語句-->
<hr>
    {% if username == 'lcy' %}
        <p>{{ username }}</p>
    {% else %}
        <p>當前使用者不是lcy</p>
    {% endif %}
<hr>
    {% for book in books %}
        <p> book is:{{ book }} </p>
    {% endfor %}
<hr>
    {% for bookn,value in book2.items() %}
        <p>{{ bookn }}:{{ value }}</p>
    {% endfor %}
<hr>
    {% for book in books %}
        <p> {{ book }} is:{{ loop.index }} </p>
        <p> {{ book }} is:{{ loop.first }} </p>
        <p> {{ book }} is:{{ loop.last }} </p>
        <p> length is:{{ loop.length }} </p>
<!--        <p> {{ book }} is:{{ loop.index0 }} </p>-->
    {% endfor %}
</body>
</html>

並且Jinja中的for迴圈還包含以下變數,可以用來獲取當前的遍歷狀態

loop.index 當前迭代的索引(從1開始)
loop.index0 當前迭代的索引(從0開始)
loop.first 是否是第一次迭代,返回True或False
loop.last 是否是最後一次迭代,返回True或False
loop.length 序列的長度

   {% for book in books %}
        <p> {{ book }} is:{{ loop.index }} </p>
        <p> {{ book }} is:{{ loop.first }} </p>
        <p> {{ book }} is:{{ loop.last }} </p>
        <p> length is:{{ loop.length }} </p>
<!--        <p> {{ book }} is:{{ loop.index0 }} </p>-->
    {% endfor %}

相關文章