Django的模板标签相关知识累
在Django中,模板标签用于在模板中插入动态内容。它们通常用于显示数据库内容,循环和条件判断等。
- 自定义模板标签
自定义模板标签的步骤如下:
- 定义python函数,并使用@register.simple\_tag装饰器进行装饰。
- 在模板中使用加载你的自定义模板标签的模板标签。
- 使用你的自定义模板标签。
例如,我们可以创建一个模板标签,该标签将两个数字相加:
# myapp/templatetags/my_tags.py
from django import template
register = template.Library()
@register.simple_tag
def add(a, b):
return a + b
然后在模板中使用这个标签:
{% load my_tags %}
{% add 10 20 %}
- 模板inclusion标签
模板inclusion标签用于包含其他模板的内容。它类似于python中的import语句。
例如,我们可以创建一个名为my_inclusion.html
的模板,并在其中写入:
<h1>This is an inclusion template</h1>
然后在主模板中包含这个模板:
{% include "myapp/my_inclusion.html" %}
- 模板继承
模板继承允许你创建一个基本模板,它定义了子模板可以重写的区域。这样可以使你的html代码保持DRY(Don't Repeat Yourself)。
例如,我们可以创建一个名为base.html
的基本模板,并在其中定义可重写的区域:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{% block title %}My amazing site{% endblock %}</title>
</head>
<body>
<div id="content">{% block content %}{% endblock %}</div>
<div id="footer">{% block footer %}Copyright 2022{% endblock %}</div>
</body>
</html>
然后,我们可以创建一个名为home.html
的子模板,并继承base.html
,然后重写其中的块:
{% extends "base.html" %}
{% block title %}Home Page{% endblock %}
{% block content %}
<h1>Welcome to the home page</h1>
<p>This is some lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
{% endblock %}
以上就是Django模板标签的一些基本知识和使用方法。
评论已关闭