Django模版

1. 模板变量的使用

模板变量用于在模板中输出数据。它们被包裹在双大括号 {``{ }} 中。

html 复制代码
<!DOCTYPE html>  
<html>  
<head>  
    <title>{{ title }}</title>  
</head>  
<body>  
    <h1>{{ heading }}</h1>  
    <p>{{ content }}</p>  
</body>  
</html>

2. 模板标签的使用

模板标签用于控制模板的逻辑。它们被包裹在 {% %} 中。

常用模板标签

for 标签:用于遍历一个序列。

html 复制代码
<ul>  
{% for item in item_list %}  
    <li>{{ item }}</li>  
{% endfor %}  
</ul>

3. 模板的继承与包含

模板继承

模板继承允许你创建一个基本的"骨架"模板,该模板包含所有网站共有的元素,然后定义一些可以被子模板覆盖的"块"。

base_generic.html

html 复制代码
<!DOCTYPE html>  
<html>  
<head>  
    <title>{% block title %}My Site{% endblock %}</title>  
</head>  
<body>  
    <h1>My Site</h1>  
    {% block content %}{% endblock %}  
</body>  
</html>

child_template.html

html 复制代码
{% extends "base_generic.html" %}  
  
{% block title %}My Page{% endblock %}  
  
{% block content %}  
    <p>This is my page content.</p>  
{% endblock %}

4. 自定义过滤器

自定义过滤器允许你定义自己的模板过滤器,用于修改模板变量的值。你需要创建一个自定义的模板标签库,并在其中定义过滤器。

步骤

创建一个自定义模板标签库文件 :在 Django 应用的 templatetags 目录中创建一个 Python 文件,例如 custom_filters.py

python 复制代码
# myapp/templatetags/custom_filters.py  
from django import template  
  
register = template.Library()  
  
@register.filter(name='cut')  
def cut(value, arg):  
    """Removes all values of arg from the given string."""  
    return value.replace(arg, '')

在模板中使用自定义过滤器:首先,你需要在模板的顶部加载自定义标签库。

html 复制代码
{% load custom_filters %}  
  
<p>{{ my_string|cut:"world" }}</p>

如果 my_string"Hello world",那么上面的代码将输出 "Hello ".

Django 的模板系统提供了一种灵活而强大的方式来生成动态 HTML 内容。通过合理使用模板变量、模板标签、模板继承和包含以及自定义过滤器,你可以高效地构建复杂而动态的网站。

相关推荐
WHOAMI_老猫1 小时前
XSS-LABS靶场通关讲解
前端·xss
独行soc1 小时前
2025年渗透测试面试题总结-字某跳动-安全研究实习生(三面)(题目+回答)
linux·服务器·安全·web安全·面试·职场和发展
要加油哦~1 小时前
前端 | 向后端传数据,判断问题所在的调试过程
前端·javascript·vue.js
爱吃烤鸡翅的酸菜鱼2 小时前
Java【网络原理】(3)网络编程续
java·运维·服务器·网络
daizikui2 小时前
LVS+Nginx接入层架构图
服务器·nginx·lvs
中工钱袋3 小时前
Vue 中地址栏参数与 HTTP 请求参数的同步问题
前端·vue.js·http
zzlyx993 小时前
设备管理系统功能与.NET+VUE(IVIEW)技术实现
前端·vue.js·view design
秋月华星5 小时前
【flutter】TextField输入框工具栏文本为英文解决(不用安装插件版本
前端·javascript·flutter
千里码aicood5 小时前
[含文档+PPT+源码等]精品基于Python实现的校园小助手小程序的设计与实现
开发语言·前端·python
青红光硫化黑6 小时前
React基础之React.memo
前端·javascript·react.js