Django框架之模板語言特殊標記(將后端的數據顯示到前端)


后端代碼

def GetMain(request):
    return render(
        request,
        "main.html",
        {
            "user1":"張三",
            "user2":"李四",
            "namelist":[
                "tom","tony","jerry"
            ],
            "citydict":{"city":"北京","area":"20萬平方公里"},
            "person":[
                {"name":"老王","age":33,"sex":""},
                {"name":"老李","age":44,"sex":""}
            ]
        }
                  )

代碼中user1,user2代表單個數據

namelist代表列表

citydict代表字典

person代表列表中的字典

 

將后端數據傳遞到前端顯示出來,在后端應使用render這個函數,其中第一個參數是請求對象,第二個參數是渲染模板,將數據顯示到這個模板中,第三個參數是以字典的形式進行傳遞。

特殊標記

(1){{變量名稱}}  :變量名稱作為替換符,替換后端傳遞過來的值,如:例子中后端的字典里user1作為key值,"張三"作為value值,而key值是不可變量,value值是動態數據,在前端中的{{}}中寫上user1變量,當模板通過jinja2模板渲染的時候,就將user1替換成value值顯示到前端,也就是顯示了"張三"的數據

(2){% 代碼塊%} :通過這個標識符顯示代碼塊。如:for語句循環,if語句等使用

 

前端代碼:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
1.顯示單個數據:==========<br/>
{{ user1 }},{{ user2 }}<br/>
2.顯示列表中單個數據:===========<br/>
{{ namelist.0 }}---{{ namelist.1 }}<br/>
3.顯示字典中的單個數據:===========<br/>
{{ citydict.city }}---{{ citydict.area }}<br/>
4.顯示列表中所有的數據:============<br/>
{% for name in namelist %}
    {{ name }}
{% endfor %}<br/>

4.顯示列表中的字典數據:===========<br/>
<table border="1">
    <tr>
        <td>姓名</td>
        <td>名字</td>
        <td>性別</td>
    </tr>
    {% for row in person %}
    <tr>
        <td>{{ row.name }}</td>
        <td>{{ row.age }}</td>
        <td>{{ row.sex }}</td>
    </tr>
    {% endfor %}
</table>

</body>
</html>

可以通過上面的例子,可以了解單個數據,列表,字典的顯示數據的實現

結果:

 

 

=====================================================

for循環:

后端代碼:

def if_test(request):
    subject_list=["python","java","c#","php","c++"]
    return render(request,"test.html",{"subject_list":subject_list})

前端代碼:

{% for subject in subject_list %}
    {{ subject }}
{% endfor %}

通過將后端傳遞到前端的數據,通過遍歷循環顯示出可迭代對象的所有元素

 

======================================================

if語句

后端代碼:

def if_test(request):
    scroe_list=[22,34,1,55,78,99]
    return render(request,"test.html",{"scroe_list":scroe_list})

前端代碼:

{% for score in scroe_list %}
    {% if score >= 60  %}
        {{ score }}
    {% endif %}
{% endfor %}

如果score>=60就顯示出來,否則不顯示

 

=====================================================

{{ forloop.last }}表示最后一個數據,常用於if語句或for語句中

{% for score in scroe_list %}
    {% if forloop.last  %}
        {{ score }}
        {% else %}
        {{ score }},
    {% endif %}

{% endfor %}

{{ forloop.first }}表示第一個數據

 


免責聲明!

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



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