フラスコ制御ステートメント

すべての制御ステートメントは{%…%}に配置され、終了するステートメント{%endxxx%}があります。Jinjaで一般的に使用される制御ステートメントはif / for…in…です。

1.条件制御:ifステートメント

  • ifステートメントはPythonのステートメントと似ており、>、<、<=、> =、==、!=を使用して判断できます。また、and、or、not、()を使用して論理マージ操作を実行することもできます。
from flask import Flask,render_template

app=Flask(__name__)

context={
    
    
    'username': '老萝卜'
}

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


if __name__=="__main__":
    app.run(debug=True)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Flask if控制语句演示</title>
</head>
<body>
    {
    
    %if username=="老萝卜"%}
    <p>当前用户是:{
    
    {
    
    username}}</p>
    {
    
    %else%}
     <p>当前用户不是:老萝卜,而是{
    
    {
    
    username}}</p>
    {
    
    %endif%}

</body>
</html>

ここに画像の説明を挿入
ここに画像の説明を挿入
ユーザー名を別の値「username」に変更します:「laoluobo」
ここに画像の説明を挿入
ここに画像の説明を挿入

2.ループ制御:for ... in ...

  • forループは、リスト、辞書、タプルを含む任意のシーケンスをトラバースできます。そして逆に横断することができます
  • シーケンスに値がない場合は、elseと入力します
  • また、Jinjaのforループには、現在のトラバーサルステータスを取得するために使用できる次の変数も含まれています。
変数 説明
loop.index 現在の反復のインデックス(1から開始)
loop.index0 現在の反復のインデックス(0から開始)
loop.first それが最初の反復であるかどうかにかかわらず、TrueまたはFalseを返します
loop.last それが最後の反復であるかどうかにかかわらず、TrueまたはFalseを返します
loop.length シーケンスの長さ
  • さらに、continue式とbreak式を使用して、ループの実行を制御することはできません。
from flask import Flask,render_template

app=Flask(__name__)

context={
    
    
    'books': ['Python', 'Java', 'PHP'],
    'book': {
    
    'Python': 666,
             'Java': 777,
             'PHP': 888
             },
    "netebooks":[]
}

@app.route("/")
def flask_for():
    return render_template('demo_flaskfor.html', **context)

if __name__=="__main__":
    app.run(debug=True)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Flask if控制语句演示</title>
</head>
<body>
    <p> 循环显示列表 books:</p>
    {
    
    % for book in books %}          <!--循环显示列表-->
        <p>{
    
    {
    
     book }}</p>
    {
    
    % else %}
        <p>列表books为空列表</p>
    {
    
    % endfor %}
    <hr>

    <p> 循环显示列表 notebooks:</p>
    {
    
    % for book in notebooks %}          <!--循环显示空列表-->
        <p>{
    
    {
    
     book }}</p>
     {
    
    % else %}
        <p>列表notebooks为空列表</p>
    {
    
    % endfor %}
    <hr>

    <p>循环显示字典:</p>
    {
    
    % for i in book %}                 <!--循环显示字典-->
        <p>{
    
    {
    
     i }}</p>
    {
    
    % endfor %}
    <hr>

    <p>循环显示字典的key和value</p>
    {
    
    % for key, value in book.items() %}    <!--循环显示字典的key和value -->
        <p>{
    
    {
    
     key }} -- {
    
    {
    
     value }}</p>
    {
    
    % endfor %}

    <hr>
    <p>显示循环当前遍历状态 </p>
    {
    
    % for book in books %}
        <p>{
    
    {
    
     book }}</p>
        <p>当前迭代的索引(从0开始):{
    
    {
    
     loop.index0 }}</p>
        {
    
    % if loop.first %}
            <p>是否是第一次迭代,返回TrueFalse{
    
    {
    
     loop.first }}</p>
        {
    
    % endif %}
        {
    
    % if loop.last %}
            <p>是否是最后一次迭代,返回TrueFalse{
    
    {
    
     loop.last }}</p>
        {
    
    %endif%}
    {
    
    % endfor %}

</body>
</html>

ここに画像の説明を挿入
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/laoluobo76/article/details/109111247