日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Django(part12)--模板的标签

發布時間:2023/12/19 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Django(part12)--模板的标签 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

學習筆記,僅供參考


文章目錄

      • 模板的標簽
        • if標簽
        • for標簽
        • for...empty標簽
        • cycle標簽
        • 注釋
        • comment標簽
      • 舉幾個例子



模板的標簽


  • 作用

將一些服務器端的功能嵌入到模板中


  • 標簽語法
{%標簽%} ... {%結束標簽%}

if標簽

語法:

{%if條件表達式%} ... {%elif條件表達式%} ... {%else%} ... {%endif%}
  • if標簽里的布爾運算符

if條件表達式里可以用的運算符:

==, !=, <, >, <=, >=, in, not in, is, is not, and, or

在if標記中實際括號是無效的語法。如果我們需要指示優先級,則應使用嵌套的if標記,而不能使用括號提高優先級。


for標簽


語法:

{% for 變量 in 可迭代對象 %} {% endfor %}

內置變量forloop:

變量描述
forloop.counter循環計數(從1開始)
forloop.counter0循環計數(從0開始)
forloop.revcounter反向循環計數(從len(可迭代對象)開始,到1結束)
forloop.revcounter0反向循環計數(從len(可迭代對象)-1開始,到0結束)
forloop.first如果是第1次循環,則返回為真
forloop.last如果是最后1次循環,則返回為真
forloop.parentloop當存在循環嵌套時,parentloop可循環當前循環的父循環

for…empty標簽


語法:

{% for 變量 in 可迭代對象 %} {% empty %} {% endfor %}

當可迭代對象為空時,就會走{% empty %}標簽


cycle標簽


循環從cycle列表后的參數中進行取值,每次調用進行一次更換。這個標簽經常用于循環中,如處理表格的隔行變色

語法:

{% for i in some_list %} <tr class="{% cycle 'row1' 'row2' %}"><td></td>...<td></td> </tr> {% endfor %}

注釋


以{#開頭, 以#}結束范圍內的文字信息將會被模板的渲染系統忽略掉

比如:

{# <h2>此處文字不會被生成HTML語句</h2> #}

注意區別模板注釋HTML內部注釋
模板注釋在 HTML 解析時會直接被忽略,它不會生成 HTML 語句;而 HTML 注釋依然會保留在 HTML 網頁源代碼中,生成 HTML 語句,它是針對于瀏覽器的注釋。


comment標簽


在{% comment %}和{% endcomment %}之間的內容會被忽略。

比如:

{% comment %}{% if has_car %}<h1>{{ name }} 有車</h1>{% else %}<h1>{{ name }} 沒有車</h1>{% endif %} {% endcomment %}

注意,comment標簽不能嵌套使用


舉幾個例子


  • 例子1(if標簽)

page3.html

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Template</title> </head> <body><h1>這是我的第3個模板</h1><h2>{{name}}{%if has_bunny %}有{% else %}沒有{% endif %}兔子</h2></body> </html>

urls.py

urlpatterns = [path('admin/', admin.site.urls),re_path(r'page3_template/$', views.page3_template),]

views.py

def page3_template(request):d = {"name":"Ada","has_bunny":True}return render(request, "page3.html", d)

向http://127.0.0.1:8000/page3_template/發起請求:


  • 例子2(if標簽里的布爾運算符)

page4.html

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Template</title> </head> <body><h1>這是我的第4個模板</h1><h2>{{name}}是一只{%if age < 5 %}幼{% elif age > 60 %}老年{% else %}成年{% endif %}兔</h2></body> </html>

urls.py

urlpatterns = [path('admin/', admin.site.urls),re_path(r'page4_template/$', views.page4_template), ]

views.py

def page4_template(request):d = {"name":"Huang","age":10}return render(request, "page4.html", d)

向http://127.0.0.1:8000/page4_template/發起請求:


  • 例子3(for標簽)

page5.html

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Template</title> </head> <body><h1>這是我的第5個模板</h1><h2>兔子列表</h2><ul>{% for i in bunny %}{% if forloop.first %}<li>-----我是第1行-----</li>{% endif %}<li>第{{forloop.counter}} 個兔子: {{i}}</li>{% endfor %}</ul></body> </html>

urls.py

urlpatterns = [path('admin/', admin.site.urls),re_path(r'page5_template/$', views.page5_template) ]

views.py

def page5_template(request):d = {"bunny":["Huang", "Bai", "Tim"]}return render(request, "page5.html", d)

向http://127.0.0.1:8000/page5_template/發起請求:


  • 例子4(empty標簽)

page5.html

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Template</title> </head> <body><h1>這是我的第5個模板</h1><h2>兔子列表</h2><ul>{% for i in bunny %}{% if forloop.first %}<li>-----我是第1行-----</li>{% endif %}<li>第{{forloop.counter}} 個兔子: {{i}}</li>{% empty %}<li>-----沒有兔子-----</li>{% endfor %}</ul></body> </html>

views.py

def page5_template(request):d = {"bunny":[]}return render(request, "page5.html", d)

向http://127.0.0.1:8000/page5_template/發起請求:


  • 例子5(cycle標簽)

page6.html

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>兔兔之家</title> </head> <body><table>{% for i in bunny %}<tr style="background:{% cycle 'blue' 'green' %}"><th>名字:{{i.name}}</th><th>年齡:{{i.age}}</th></tr>{% endfor %}</table></body> </html>

urls.py

urlpatterns = [path('admin/', admin.site.urls),re_path(r'page6_template/$', views.page6_template), ]

views.py

class Bunny:def __init__(self, name, age):self.name = nameself.age = agedef speak(self):string = self.name + "今年已經" + str(self.age) + "個月啦"return stringdef page6_template(request):d = {"bunny":[Bunny("Huang", 10), Bunny("Bai", 11), Bunny("Tim", 8)]}return render(request, "page6.html", d)

向http://127.0.0.1:8000/page6_template/發起請求:

總結

以上是生活随笔為你收集整理的Django(part12)--模板的标签的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。