前言:
在 Django 模板語言中變量用 {{ }},邏輯用 {% %}
在 urls.py 中添加對應關系
from django.conf.urls import url from django.contrib import admin from app01 import views urlpatterns = [ url(r'^test/', views.django_test), ]
普通變量:
在 views.py 中編寫 django_test 函數
from django.shortcuts import render, redirect, HttpResponse from app01 import models # Django 模板語言變量 def django_test(request): name = "John" age = 28 return render(request, "test.html", {"name1": name, "age1": age}) # 通過字典形式傳給 html
接下來寫 test.html 頁面
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Django 模板語言測試</title> </head> <body> <h1>Django 模板語言測試</h1> {{ name1 }} {{ age1 }} </body> </html>
運行效果:
如果是用不存在的變量名,將不會在頁面顯示
列表:
如果要顯示列表成員的話需要使用循環來顯示
views.py:
from django.shortcuts import render, redirect, HttpResponse from app01 import models # Django 模板語言變量 def django_test(request): name = "John" age = 28 hobby = ["Reading", "Basketball", "Movie", "Music"] return render(request, "test.html", {"name1": name, "age1": age, "hobby_list": hobby})
test.html:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Django 模板語言測試</title> </head> <body> <h1>Django 模板語言測試</h1> <!-- 普通變量 --> {{ name1 }} {{ age1 }} <!-- 列表 --> {% for hobby in hobby_list %} {{ hobby }} {% endfor %} </body> </html>
運行效果:
字典:
通過 {{ 字典名.key }} 來獲取 value
views.py:
from django.shortcuts import render, redirect, HttpResponse from app01 import models # Django 模板語言變量 def django_test(request): name = "John" age = 28 hobby = ["Reading", "Basketball", "Movie", "Music"] info = {"height": 188, "weight": 120} return render(request, "test.html", {"name1": name, "age1": age, "hobby_list": hobby, "info": info})
test.html:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Django 模板語言測試</title> </head> <body> <h1>Django 模板語言測試</h1> <!-- 普通變量 --> {{ name1 }} {{ age1 }} <!-- 列表 --> {% for hobby in hobby_list %} {{ hobby }} {% endfor %} <!-- 字典 --> {{ info.height }} | {{ info.weight }} </body> </html>
運行效果:
類:
類通過 {{ 對象名.屬性 }} 來訪問屬性,通過 {{ 對象名.方法 }} 來實現方法
views.py:
from django.shortcuts import render, redirect, HttpResponse from app01 import models # 測試類 Animal class Animal(object): def __init__(self, specie, name): self.specie = specie self.name = name def sleep(self): return "%s is sleeping" %self.name # Django 模板語言變量 def django_test(request): name = "John" age = 28 hobby = ["Reading", "Basketball", "Movie", "Music"] info = {"height": 188, "weight": 120} a1 = Animal("Cat", "Tom") a2 = Animal("Dog", "Jim") return render( request, "test.html", { "name1": name, "age1": age, "hobby_list": hobby, "info": info, "a1": a1, "a2": a2, })
test.html:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Django 模板語言測試</title> </head> <body> <h1>Django 模板語言測試</h1> <!-- 普通變量 --> {{ name1 }} {{ age1 }} <!-- 列表 --> {% for hobby in hobby_list %} {{ hobby }} {% endfor %} <!-- 字典 --> {{ info.height }} | {{ info.weight }} <br> <!-- 類 --> {{ a1.specie }} | {{ a1.name }} | {{ a1.sleep }} <br> {{ a2.specie }} | {{ a2.name }} | {{ a2.sleep }} </body> </html>
運行效果: