Django 中的templates使用示例詳解
Django的模板系統是一個強大的工具,用于將動態(tài)數據渲染到HTML頁面中。以下是Django模板系統的詳細用法:
模板的基本概念
Django模板使用一個特殊的語法來插入變量、標簽和過濾器。
創(chuàng)建模板
創(chuàng)建模板目錄:在你的Django應用中創(chuàng)建一個名為templates的目錄。
編寫模板文件:在templates目錄中創(chuàng)建HTML文件,文件擴展名通常為.html。
模板繼承
Django模板支持繼承,這意味著你可以創(chuàng)建一個基礎模板,并允許其他模板繼承它。
<!-- base.html -->
<html>
<head>
<title>{% block title %}My Site{% endblock %}</title>
</head>
<body>
{% block content %}
{% endblock %}
</body>
</html><!-- child.html -->
{% extends "base.html" %}
{% block title %}Home Page{% endblock %}
{% block content %}
<h1>Welcome to my site!</h1>
{% endblock %}變量
在模板中,變量用{{ variable }}表示。
<p>Hello, {{ name }}!</p>標簽
Django模板提供了許多內置標簽,例如for循環(huán)、if條件語句等。
{% if user.is_authenticated %}
<p>Welcome, {{ user.username }}!</p>
{% else %}
<p>Welcome, guest!</p>
{% endif %}過濾器
過濾器可以被用來修改變量的輸出。過濾器使用|符號。
{{ article.pub_date|date:"Y-m-d" }}自定義過濾器
你可以創(chuàng)建自己的過濾器,并在模板中使用它們。
# 在應用的模板tags目錄中創(chuàng)建一個自定義過濾器
from django import template
register = template.Library()
@register.filter(name='my_filter')
def my_filter(value):
return value.upper()然后在模板中使用:
{{ my_variable|my_filter }}模板標簽
模板標簽用于執(zhí)行特定的邏輯。
{% for article in articles %}
<p>{{ article.title }}</p>
{% endfor %}模板中的URL
在模板中,你可以使用url標簽來生成URL。
<a href="{% url 'view_name' arg %}" rel="external nofollow" rel="external nofollow" >Link</a>注釋
在模板中,你可以使用{# ... #}來添加注釋。
{# 這是一個注釋 #}靜態(tài)文件
在模板中,你可以使用{% static %}標簽來引用靜態(tài)文件。
<link rel="stylesheet" href="{% static 'css/style.css' %}" rel="external nofollow" rel="external nofollow" >模板上下文
在視圖中,你可以傳遞一個上下文字典給模板。
from django.shortcuts import render
def my_view(request):
return render(request, 'my_template.html', {'name': 'Kimi'})模板字符串
你可以在模板中使用模板字符串來創(chuàng)建動態(tài)內容。
{% with name="Kimi" %}
<p>Hello, {{ name }}!</p>
{% endwith %}模板中的表單
Django模板提供了表單渲染的標簽,例如form標簽和form.as_p。
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Submit</button>
</form>模板中的靜態(tài)方法
在模板中,你可以使用{{ form.field.label_tag }}來渲染字段的標簽。
模板中的循環(huán)
你可以在模板中使用for循環(huán)來迭代數據。
<ul>
{% for item in items %}
<li>{{ item.name }}</li>
{% endfor %}
</ul>模板中的條件
你可以在模板中使用if標簽來執(zhí)行條件邏輯。
{% if user.is_authenticated %}
<p>Welcome back, {{ user.username }}!</p>
{% else %}
<p>Please log in.</p>
{% endif %}模板中的注釋
你可以在模板中使用{# ... #}來添加注釋。
{# 這是一個注釋 #}模板中的URL反向解析
你可以使用url標簽來生成URL。
<a href="{% url 'view_name' arg %}" rel="external nofollow" rel="external nofollow" >Link</a>模板中的靜態(tài)文件
你可以使用static標簽來引用靜態(tài)文件。
<link rel="stylesheet" href="{% static 'css/style.css' %}" rel="external nofollow" rel="external nofollow" >模板中的自定義標簽和過濾器
你可以創(chuàng)建自定義標簽和過濾器,并在模板中使用它們。
模板中的模板
你可以在一個模板中包含另一個模板。
{% include "sidebar.html" %}模板中的轉義字符
在模板中,你可以使用{{ variable|escape }}來轉義HTML。
模板中的緩存
你可以使用{% cache %}標簽來緩存模板的部分內容。
{% cache 500 sidebar %}
<!-- 緩存的內容 -->
{% endcache %}通過這些基本的用法,你可以創(chuàng)建動態(tài)且功能豐富的Web頁面。
到此這篇關于Django 中的templates使用詳解的文章就介紹到這了,更多相關Django templates使用內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Javascript 實現廣告后加載 可加載百度谷歌聯盟廣告
本文主要介紹一種新的廣告后加載的方式,支持自定義HTML廣告、百度聯盟廣告和谷歌聯盟廣告。這種方式在頁面加載完成后執(zhí)行,不影響內容的顯示,對用戶更加友好。2016-05-05
小程序組件傳值和引入sass的方法(使用vant Weapp組件庫)
這篇文章主要介紹了小程序組件傳值和引入sass使用vant Weapp組件庫,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11

