当前位置:   article > 正文

django模板继承常用标签和规则(看django源码遇到了{{ block.super }})

{{ block.super }}

block extends include三者的差别跟用法

一、定义基础模板,在html内容中定义多个block块,block由子模板引用同名block块,来决定是否替换这些部分
{% block title %}一些内容,这里可不填{% endblock %}
{% block content %}一些内容,这里可不填{% endblock %}
{% block footer %}一些内容,这里可不填{% endblock %}

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

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

二、子模板的引用方式
{% extends “base.html” %}
{% block title %}The current time{% endblock %}
{% block content %}

It is now {{ current_date }}.

{% endblock %}
第一句是固定的格式,必须为模板中的第一个模板标记
extends的参数一般为字符串,也可为变量
可带路径,相对路径,以 TEMPLATE_DIRS 的模板目录 为基准
子模板决定替换的block块,无须关注其它部分,没有定义的块即不替换,直接使用父模板的block块

三、引用上级代码块在其基础上进行一些修改 {{ block.super }}
{% block footer %}
{{ block.super }}
AAAAA
{% endblock %}

Django模板系统——模板包含另一模板 include

使用模板加载API机制之后,可用的包含其它模板标签
{% include ‘nav.html’ %}
{% include “nav.html” %}

可带路径,相对路径,以 TEMPLATE_DIRS 的模板目录 为基准
{% include ‘includes/nav.html’ %}

可使用变量名
{% include template_name %}
包含的变量都会统一处理,不区分是第几层模板

Django的{{ block.super }}模板标签
Django模板中{{ block.super }}这个标签非常有用,可以做到不仅仅是覆盖父模板,而是在父模板基础上追加内容。当然也可以覆盖。

这就给了我们灵活性:既可以完全重写,也可以复用父模板,也可以在复用的基础上扩展。

二 locals() 技巧

locals()返回一个包含当前作用域里面的所有变量和它们的值的字典

from django.shortcuts import render_to_response
import datetime
def current_datetime6(request):
current_date = datetime.datetime.now()
return render_to_response(‘current_datetime6.html’, locals())

作者:Nick_Spider
来源:CSDN
原文:https://blog.csdn.net/weixin_39198406/article/details/78866035
版权声明:本文为博主原创文章,转载请附上博文链接!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/769247
推荐阅读
相关标签
  

闽ICP备14008679号