05_DJango 模板文件设置及extends,block和include使用

本文介绍了Django中模板文件的设置,重点讲解了如何使用extends进行模板继承,以及block和include的使用方法。通过extends实现模板的扩展,利用block定义可被子模板替换的区域,include则用于在多个页面中引入公共模板部分。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、设置TEMPLATES

首先,在该项目目录下创建templates文件夹

然后,在templates文件夹下,创建base.html作为所有html的父类,并设置settings中的TEMPLATES

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')], #修改了这一行
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

base.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>{% block title%} base.html 的title{% endblock %}--欢迎访问</title>
</head>
<body>
    {% block css %}                 {# block 是块代码 #}
        base.html的css
    {% endblock %}

    {% include 'index.html' %}      {# 引入其他html #}
</body>
</html>

 

 

 

extends(扩展)和block(方块)一起用

它们用于母版和子版的继承

在母版html中将一些需要替换的部分用{% block xxx %}。。。{% endblock %}括起来,

 

{% block title %}一些内容,这里可不填{% endblock %}

{% block content %}一些内容,这里可不填{% endblock %}

{% block footer %}一些内容,这里可不填{% endblock %}

这里 title content footer 不是变量,名字自定义,名字必须定义

block一般定义在base.html中  block是可以在那些继承base的html中添加内容的区


--------------------------------------------------------------------------------------------------------------------------------------------------
 

在子版html中的在第一行需要写上要继承的母版,{% extends '母版的相对路径' %}这样引入母版。

 

{% extends "base.html" %}               {# 在子版的第一行,引入要继承的母版#}

{% block title %}----替换母版名为title的block块----{% endblock %}

{% block content %}------替换母版名为content的block块----------{% endblock %}

第一句是扩展母版固定的格式,必须为模板中的第一个模板标记

extends的参数一般为字符串,也可为变量

可带路径,相对路径,以 TEMPLATE_DIRS 的模板目录 为基准

子模板决定替换的block块,无须关注其它部分,没有定义的块即不替换,直接使用父模板的block块 
 

----------------------------------------------------------------------------------------------------------------------------------------------------------------------

include(包含)

include用户公共模板的引入,当很多页面(不是所有)中都需要某段html语言时,引入公共模板是个好方法,

在当前的html中的某个你需要引入公共模板的地方使用{% include '公共模板的相对路径' %}引入。

{% include 'nav.html' %}

{% include "nav.html" %}

可带路径,相对路径,以 TEMPLATE_DIRS 的模板目录 为基准

{% include 'includes/nav.html' %}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值