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 内容。通过合理使用模板变量、模板标签、模板继承和包含以及自定义过滤器,你可以高效地构建复杂而动态的网站。

相关推荐
所待.3834 分钟前
深入解析SpringMVC:从入门到精通
前端·spring·mvc
逃逸线LOF29 分钟前
CSS之精灵图(雪碧图)Sprites、字体图标
前端·css
YOYO--小天32 分钟前
RK3588 ADB使用
linux·嵌入式硬件·adb
猴子请来的逗比48941 分钟前
tomcat查看状态页及调优信息
服务器·学习·tomcat·firefox
Strugglingler1 小时前
Shell 脚本
linux·bash·shell
孞㐑¥1 小时前
Linux之基础IO
linux·开发语言·c++·经验分享·笔记
时光飞逝的日子1 小时前
linux下编写shell脚本一键编译源码
linux·shell·脚本·编译
时光飞逝的日子1 小时前
Ubuntu 18.04设置静态IP的方法(图形化操作)
linux·ubuntu·静态ip
海天胜景2 小时前
jqGrid冻结列错行问题,将冻结表格(悬浮表格)与 正常表格进行高度同步
前端
带鱼吃猫2 小时前
Linux系统:ext2文件系统的核心概念和结构
linux·运维·服务器