Python - Django - 模板語言之變量


前言:

在 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>

運行效果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM