[py]django模板继承

参考

django模板继承

  • 通过搞一个base.html
  • 这个base.html可以包含两类
    • block片断
    • 其他html
  • 然后index.html继承base.html
  • 继承关系如图

代码体现template继承

关键字

- 预设片断模板- 留坑
{% block title %}
    默认标题
    {% endblock %}

- 预包含html文件
{% include 'nav.html' %}

- index.html继承base.html
{% extends 'base.html' %}

- index.html填坑
{% block content %}
    hello new content
{% endblock %}

项目代码体现

learn/templates/ - 其他一些小的html 如nav bottom tongji 等独立开来.

nav.html
<div>nav html</div>

tongji.html
<div>tongji html</div>

bottom.html
<div>bottom html</div>

learn/templates/base.html - 预设模板

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>{% block title %}
    默认标题
    {% endblock %}</title>
</head>
<body>
{% include 'nav.html' %}

{% block content %}
<div>这是默认的content</div>
{% endblock %}

{% include 'bottom.html' %}
{% include 'tongji.html' %}
</body>
</html>

learn/templates/index.html - 继承base.html,最终返回拼接好的index.html

{% extends 'base.html' %}
{% block title %}
hello new title
{% endblock %}

{% block content %}
    hello new content
{% endblock %}

url.py- 映射index的path

from learn import views

urlpatterns = [
    path('', views.index),
    path('admin/', admin.site.urls),
]

views.py - 返回index.html

def index(request):
    return render(request, "index.html")

访问测试

原文地址:https://www.cnblogs.com/iiiiiher/p/8335684.html

时间: 2024-11-05 19:05:24

[py]django模板继承的相关文章

Python学习---django模板继承180123

django模板继承  --20180123 a.include 模板标签 b.extend(继承)模板标签 ------include 模板标签 该标签允许在(模板中)包含其它的模板的内容. 标签的参数是所要包含的模板名称,可以是一个变量,也可以是用单/双引号硬编码的字符串. 每当在多个模板中出现相同的代码时,就应该考虑是否要使用 {% include %} 来减少重复. ------extend(继承)模板标签 先构造一个基础框架模板,而后在其子模板中对它所包含站点公用部分和定义块进行重载.

Django模板继承下的动态数据传递—上下文处理器

参考:http://www.caodahua.cn/detail/3/ 模板继承可以减少页面内容的重复定义,实现页面内容的重用.我的个人博客右侧的导航栏都是继承base页面从而让代码得到最大程度的复用.但是当父模板中有动态数据的话,这些动态数据在子模版中是不会显示的.我们可以通过自定义上下文处理器来解决. Django上下文处理器(Context Processor) 上下文处理器是接收HttpRequest为参数并返回dict形式的数据的函数.它的主要用途是将所有模板共享的公共数据添加到上下文

Django模板继承

base.html <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>{% block title %}{% endblock %}</title></head> <body><h1>模板继承</h1>{% block content %}{% endbloc

Django模板继承和引用

一.模板继承 1.模板继承可以在创建一个基本“骨架”后,被其它子模板继承并覆盖,通过修改基础模板可以修改子模板中的所有框架 2.在模板teacher文件夹下创建基础模板 {% block xxx}与{% block }是成对出现的 该标签的功能是为子模板声明该出内容可以被覆盖重写 不写则为基础模板的内容 3.在student_list页面继承基础模板 首行的{% extends 'teacher/base.html'}必须写 其余内容按常规写在{% block }{% endblock }中 二

Django 模板继承

在Django网页开发中,一个网站的不同页面都存在大量相同的布局,如果在每一个页面都写上相同的代码,那个维护的工作量就太大了.为了减少不必要的重复工作,Django允许开发者定义基本的模板,然后其他的页面继承这个模板的布局. 例如:首先我创建一个模板文件 layout.html layout.html,注意在这个模板里面,我使用了一个新的模板语言{% block name%}, name可以自己取,这样凡是继承这个模板的页面,在新的页面里面,只需要把自己的内容放在同名的{%block name%

django-7.django模板继承(block和extends)

前言 打开一个网站时候,点导航栏切换到不同的页面,发现导航部分是不变的,只是页面的主体内容变了,于是就可以写个母模板,其它的子页面继承母模板就可以了. 母模板 可以在母模板中添加多个块标签,每个块标签取不同的名称,如下格式,context是块标签名称 {% block content %} {% endblock content %} <!DOCTYPE html> <html lang="en"> <head> <meta charset=&

python测试开发django-7.django模板继承(block和extends)

前言 打开一个网站时候,点导航栏切换到不同的页面,发现导航部分是不变的,只是页面的主体内容变了,于是就可以写个母模板,其它的子页面继承母模板就可以了. 母模板 可以在母模板中添加多个块标签,每个块标签取不同的名称,如下格式,content是块标签名称 {% block content %} {% endblock content %} <!DOCTYPE html> <html lang="en"> <head> <meta charset=&

Django模板继承后出现logo图片无法加载的问题

父文件:index.html <!DOCTYPE html> <html lang="en"> <head> <title>{% block title %}Index{% endblock %}</title> <meta charset="utf-8"> <script src="https://cdn.bootcss.com/jquery/1.10.2/jquery.min

Django中模板总结[模板语言,模板继承,CSRF攻击,反向解析]

模板 概述 作为Web框架,Django提供了模板,用于编写html代码,还可以嵌入模板代码更快更方便的完成页面开发,再通过在视图中渲染模板,将生成最终的html字符串返回给客户端浏览器.模版致力于表达外观,而不是程序逻辑.模板的设计实现了业务逻辑view与显示内容template的分离,一个视图可以使用任意一个模板,一个模板可以供多个视图使用. 创建模板文件夹 在项目的文件里面定义一个templates文件夹 在创建的文件夹里面再创建一个文件夹为每个应用的html文件夹 起名为和应用名同名的文