Django模板语言(简略教程)

Django模板语言(Django Template Language, DTL)是Django框架用于动态生成HTML页面的一种模板语言。它提供了强大的模板功能,如变量替换、过滤器、标签等,能够将后端数据渲染到前端页面。

以下是Django模板语法的简略教程:

1. 创建和渲染模板

创建模板文件

在Django项目的 templates 目录中创建HTML文件,例如 index.html

<!DOCTYPE html>
<html>
<head>
    <title>My Site</title>
</head>
<body>
    <h1>Hello, {{ name }}!</h1>
</body>
</html>
渲染模板

在视图函数中使用 render 方法渲染模板并传递上下文数据:

from django.shortcuts import render

def index(request):
    context = {'name': 'World'}
    return render(request, 'index.html', context)

2. 变量

在模板中使用双大括号 {{ }} 来输出变量的值:

<p>{{ variable_name }}</p>

例如:

<p>Hello, {{ name }}!</p>

3. 过滤器

过滤器用于修改变量的显示方式,语法是 {{ variable|filter }}

<p>{{ name|lower }}</p>
<p>{{ name|length }}</p>

常用过滤器:

  • lower: 转换为小写
  • upper: 转换为大写
  • length: 返回长度
  • default: 如果变量为空,则返回默认值

4. 标签

标签用于控制模板逻辑,语法是 {% tag %}

条件语句

使用 if 标签进行条件判断:

{% if user.is_authenticated %}
    <p>Welcome back, {{ user.username }}!</p>
{% else %}
    <p>Please log in.</p>
{% endif %}
循环语句

使用 for 标签进行循环:

<ul>
{% for item in item_list %}
    <li>{{ item }}</li>
{% endfor %}
</ul>
模板继承

模板继承用于创建基模板和子模板,提高代码复用性。

        基模板定义了HTML文档的基本结构,并使用 {% block %} 标签来创建可覆盖的内容区域。子模板通过 {% extends %} 标签继承基模板,并使用 {% block %} 标签来覆盖基模板中的内容区域。

基模板 base.html

<!DOCTYPE html>
<html>
<head>
    <title>{% block title %}My Site{% endblock %}</title>
</head>
<body>
    {% block content %}{% endblock %}
</body>
</html>

子模板 index.html

{% extends "base.html" %}

{% block title %}Home Page{% endblock %}

{% block content %}
    <h1>Welcome to the Home Page</h1>
{% endblock %}

5. 加载静态文件和URL

静态文件

使用 static 标签加载静态文件(如CSS、JS、图片):

{% load static %}
<img src="{% static 'images/logo.png' %}" alt="Logo">
动态URL

使用 url 标签生成动态URL:

<a href="{% url 'index' %}">Home</a>

假设你在 urls.py 中定义了一个名为 index 的URL模式:(通过参数name确定url)

from django.urls import path
from app01 import views

urlpatterns = [
    path('index/', views.index, name='index'),
]

6. 模板注释

使用 {# #} 进行注释,注释内容不会在渲染的HTML中显示:

{# This is a comment #}

这是一个简单的Django模板语法教程,涵盖了变量、过滤器、标签、模板继承、静态文件和动态URL等基本内容。Django模板语言功能强大,适用于各种复杂的模板需求。

相关推荐

  1. Django模板语言简略教程

    2024-07-15 04:10:02       25 阅读
  2. Django模板语言

    2024-07-15 04:10:02       36 阅读
  3. Go教程-Go语言简介

    2024-07-15 04:10:02       57 阅读
  4. Django模板

    2024-07-15 04:10:02       48 阅读
  5. Django——模板

    2024-07-15 04:10:02       39 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-15 04:10:02       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-15 04:10:02       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-15 04:10:02       57 阅读
  4. Python语言-面向对象

    2024-07-15 04:10:02       68 阅读

热门阅读

  1. std::async和std::future异步编程

    2024-07-15 04:10:02       23 阅读
  2. C++智能指针

    2024-07-15 04:10:02       19 阅读
  3. Python面试题:如何在 Python 中进行单元测试?

    2024-07-15 04:10:02       24 阅读
  4. git使用

    2024-07-15 04:10:02       20 阅读
  5. 哪个外汇平台可以交易美股?

    2024-07-15 04:10:02       20 阅读
  6. ubuntu disk

    2024-07-15 04:10:02       15 阅读
  7. 数据结构与算法基础篇--递归

    2024-07-15 04:10:02       20 阅读
  8. 来看一个14台480KW的充电站实际收入情况

    2024-07-15 04:10:02       20 阅读
  9. dify/api/models/workflow.py文件中的数据表

    2024-07-15 04:10:02       21 阅读