選單
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

Django 標籤


For 迴圈

一個 for 迴圈用於迭代一個序列,例如遍歷陣列、列表或字典中的專案。

示例

遍歷列表中的項

{% for x in fruits %}
  <h1>{{ x }}</h1>
{% endfor %}
執行示例 »

示例

遍歷字典列表

{% for x in cars %}
  <h1>{{ x.brand }}</h1>
  <p>{{ x.model }}</p>
  <p>{{ x.year }}</p>
{% endfor %} 
執行示例 »

來自模型的資料

模型中的資料就像一個包含行和列的表。

我們之前建立的 Member 模型有五行,每行有三列

 id   firstname   lastname   phone   joined_date 
 1   Emil   Refsnes   5551234   2022-01-05 
 2   Tobias   Refsnes   5557777   2022-04-01 
 3   Linus   Refsnes   5554321   2021-12-24 
 4   Lene   Refsnes   5551234   2021-05-01 
 5   Stalikken   Refsnes   5559876   2022-09-29 

當我們從模型中獲取資料時,它會以 QuerySet 物件的形式返回,格式與上面的 cars 示例類似:一個包含字典的列表。

<QuerySet [
  {
    'id': 1,
    'firstname': 'Emil',
    'lastname': 'Refsnes',
    'phone': 5551234,
    'joined_date': datetime.date(2022, 1, 5)
  },
  {
    'id': 2,
    'firstname': 'Tobias',
    'lastname': 'Refsnes'
    'phone': 5557777,
    'joined_date': datetime.date(2021, 4, 1)
  },
  {
    'id': 3,
    'firstname': 'Linus',
    'lastname': 'Refsnes'
    'phone': 5554321,
    'joined_date': datetime.date(2021, 12, 24)
  },
  {
    'id': 4,
    'firstname': 'Lene',
    'lastname': 'Refsnes'
    'phone': 5551234,
    'joined_date': datetime.date(2021, 5, 1)
  },
  {
    'id': 5,
    'firstname': 'Stalikken',
    'lastname': 'Refsnes'
    'phone': 5559876,
    'joined_date': datetime.date(2022, 9, 29)
  }
]> 

示例

遍歷從資料庫中獲取的項

{% for x in members %}
  <h1>{{ x.id }}</h1>
  <p>
    {{ x.firstname }}
    {{ x.lastname }}
  </p>
{% endfor %} 
執行示例 »

Reversed

如果您想以相反的順序迴圈,可以使用 reversed 關鍵字。

示例

{% for x in members reversed %}
  <h1>{{ x.id }}</h1>
  <p>
    {{ x.firstname }}
    {{ x.lastname }}
  </p>
{% endfor %}  
執行示例 »

Empty

如果您想在物件為空時執行特殊操作,可以使用 empty 關鍵字。

示例

<ul>
  {% for x in emptytestobject %}
    <li>{{ x.firstname }}</li>
  {% empty %}
    <li>No members</li>
  {% endfor %}
</ul> 
執行示例 »

如果物件不存在,也可以使用 empty 關鍵字。

示例

<ul>
  {% for x in myobject %}
    <li>{{ x.firstname }}</li>
  {% empty %}
    <li>No members</li>
  {% endfor %}
</ul> 
執行示例 »

Loop Variables

Django 有一些變數可以在迴圈中使用。

  • forloop.counter
  • forloop.counter0
  • forloop.first
  • forloop.last
  • forloop.parentloop
  • forloop.revcounter
  • forloop.revcounter0

forloop.counter

當前迭代次數,從 1 開始。

示例

<ul>
  {% for x in fruits %}
    <li>{{ forloop.counter }}</li>
  {% endfor %}
</ul> 
執行示例 »

forloop.counter0

當前迭代次數,從 0 開始。

示例

<ul>
  {% for x in fruits %}
    <li>{{ forloop.counter0 }}</li>
  {% endfor %}
</ul> 
執行示例 »

forloop.first

允許您測試迴圈是否處於第一次迭代。

示例

為迴圈的第一次迭代繪製藍色背景

<ul>
  {% for x in fruits %}
    <li
      {% if forloop.first %}
        style='background-color:lightblue;'
      {% endif %}
    >{{ x }}</li>
  {% endfor %}
</ul> 
執行示例 »

forloop.last

允許您測試迴圈是否處於最後一次迭代。

示例

為迴圈的最後一次迭代繪製藍色背景

<ul>
  {% for x in fruits %}
    <li
      {% if forloop.last %}
        style='background-color:lightblue;'
      {% endif %}
    >{{ x }}</li>
  {% endfor %}
</ul> 
執行示例 »

forloop.revcounter

從末尾開始倒數,直到 1 的當前迭代次數。

示例

<ul>
  {% for x in fruits %}
    <li>{{ forloop.revcounter }}</li>
  {% endfor %}
</ul> 
執行示例 »

forloop.revcounter0

從末尾開始倒數,直到 0 的當前迭代次數。

示例

<ul>
  {% for x in fruits %}
    <li>{{ forloop.revcounter0 }}</li>
  {% endfor %}
</ul> 
執行示例 »


×

聯絡銷售

如果您想將 W3Schools 服務用於教育機構、團隊或企業,請傳送電子郵件給我們
sales@w3schools.com

報告錯誤

如果您想報告錯誤,或想提出建議,請傳送電子郵件給我們
help@w3schools.com

W3Schools 經過最佳化,旨在方便學習和培訓。示例可能經過簡化,以提高閱讀和學習體驗。教程、參考資料和示例會不斷審查,以避免錯誤,但我們無法保證所有內容的完全正確性。使用 W3Schools 即表示您已閱讀並接受我們的使用條款Cookie 和隱私政策

版權所有 1999-2024 Refsnes Data。保留所有權利。W3Schools 由 W3.CSS 提供支援