Python学习---django模板继承180123
django模板继承 --20180123
a.include 模板标签
b.extend(继承)模板标签
------include 模板标签
该标签允许在(模板中)包含其它的模板的内容。 标签的参数是所要包含的模板名称,可以是一个变量,也可以是用单/双引号硬编码的字符串。 每当在多个模板中出现相同的代码时,就应该考虑是否要使用 {% include %} 来减少重复。
------extend(继承)模板标签
先构造一个基础框架模板,而后在其子模板中对它所包含站点公用部分和定义块进行重载。
settigs.py
'DIRS': [os.path.join(BASE_DIR, 'templates')], # 设置templates的路径为Django以前版本
# 'DIRS': [], # 注释掉该行,此为Django 2.0.1最新版本
# 'django.middleware.csrf.CsrfViewMiddleware',
...省略默认配置
STATIC_URL = '/static/'
TEMPLATE_DIRS = (os.path.join(BASE_DIR, 'templates'),) # 原配置
# 静态资源文件
STATICFILES_DIRS = (os.path.join(BASE_DIR, "statics"),) # 现添加的配置,这里是元组,注意逗号
templates/base.html
<!DOCTYPE html>
<html lang="en">
<head> <meta charset="UTF-8">
<style>
.page-header{ height:50px; background-color: turquoise; width: 100%; }
.page-body .menu{ height: 400px; background-color: orange;width: 20%; float: left; }
.page-body .content{ height:400px; background-color: palevioletred; width:80%;float: left;}
.page-footer{height: 50px;clear: both;width: 100%; background-color: rebeccapurple; }
</style>
</head>
<body>
<div>
<div class="page-header"></div>
<div class="page-body">
<div class="menu">
<a href="/order/">订单</a>
<a href="/shopping/">购物车</a>
</div>
{% block content %} {# 这里使用block占用了一个block,同时给这个block设置了一个名称#}
{% endblock %}
</div>
<div class="page-footer"></div>
</div></body>
</html>
templates/order.html
{% extends "base.html" %} {# 这里继承了基础类,必须放在首行 #
{% block content %} {# 根据block的名称content去填充新的内容 #}
<div class="content">
订单
</div>
{% endblock %}
templates/shopping.html
{% extends "base.html" %} {# 这里继承了基础类,必须放在首行 #}
{% block content %} {# 根据block的名称content去填充新的内容 #}
<div class="content">
购物车
</div>
{% endblock %}
mysite2/urls.py
from django.contrib import admin
from django.urls import path
from blog import views
from django.conf.urls import url
urlpatterns = [
# order -- 订单
url(r'order/', views.order),
# shopping -- 购物车
url(r'shopping/', views.shopping),
]
views.py
from django.shortcuts import render, HttpResponse
import datetime
# order
def order(request):
return render(request, "order.html")
# shopping
def shopping(request):
return render(request, "shopping.html")
页面显示:

注意:
我们可以通过 {% block.super %} 获取父类的内容
<1> 创建 base.html 模板,在其中定义站点的主要外观感受。 这些都是不常修改甚至从不修改的部分。
<2> 为网站的每个区域创建 base_SECTION.html 模板这些模板对base.html 进行拓展,并包含区域特定的风格与设计。
<3> 为每种类型的页面创建独立的模板,例如论坛页面或者图片库。 这些模板拓展相应的区域模板。
Python学习---django模板继承180123的更多相关文章
- Python学习---django模板语法180122
django模板语法[Template] 模版的组成: HTML代码+逻辑控制代码 <h1> {{ user_name }} </h1> 逻辑控制代码的组成: 1.变量: ...
- Django 2.0 学习(13):Django模板继承和静态文件
Django模板继承和静态文件 模板继承(extend) Django模板引擎中最强大也是最复杂的部分就是模板继承了,模板继承可以让我们创建一个基本的"骨架"模板,它可以包含网页中 ...
- django学习-8.django模板继承(block和extends)
1.前言 django模板继承的作用:模板可以用继承的方式来实现复用,减少冗余内容. 一般来说,一个网站里一般存在多个网页的头部和尾部内容都是一致的,我们就可以通过模板继承来实现复用. 父模板用于放置 ...
- [py][mx]django模板继承-课程列表页
课程列表页分析 1,机构类型 2,所在地区 3.排序 学习人数 先分析下 纵观页面,页头页脚都一样. django提供了模板继承. 至少 不同页面的title 面包屑路径 content内容不一致,以 ...
- [py]django模板继承
参考 1.展示arr,d等数据类型 2.逻辑for if / url获取 3.获取内置变量 django模板继承 通过搞一个base.html 这个base.html可以包含两类 block片断 其他 ...
- python【第二十一篇】Django模板继承、分页、cookie验证
1.模板继承 母版master.html {% block title %}{% endblock %}2 {% block table-cont %}{% endblock %} 子板 {% ext ...
- 干货福利:如何使用Python中Django模板?
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 穆胜亮 篇文章将学习如何使用Django模板.模板是在Django ...
- Python自动化之模板继承和cookie
request请求头信息 type(request) //查看类 from django.core.handlers.wsgi import WSGIRequest 结果会以字典的形式存在 reque ...
- Django 模板继承
本质上来说,模板继承就是先构造一个基础框架模板,而后在其子模板中对它所包含站点公用部分和定义块进行重载. 让我们通过修改 current_datetime.html 文件,为 current_date ...
随机推荐
- 多线程编程(二)-Exchanger的使用
Exchanger的介绍 类Exchanger的功能可以使两个线程之间传输数据. 方法exchange()的使用 package com.wjg.unit; import java.util.conc ...
- IDEA tomcat部署
一.前言 1.CATALINA_HOME和CATALINA_BASE两个变量的区别:前者是tomcat的安装目录,后者是tomcat实例的目录.(安装一个tomcat,可以启动多个tomcat ...
- Rsyslog+ELK日志分析系统
转自:https://www.cnblogs.com/itworks/p/7272740.html Rsyslog+ELK日志分析系统搭建总结1.0(测试环境) 因为工作需求,最近在搭建日志分析系统, ...
- C# 日历类
using System; namespace DotNet.Utilities { /// <summary> /// 农历属性 /// </summary> public ...
- Axios的详细配置和相关使用
Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中. Features 从浏览器中创建 XMLHttpRequests 从 node.js 创建 http ...
- Java实现进程调度算法(二) RR(时间片轮转)
一.概述 因为这次os作业对用户在控制台的输入输出有要求,所以我花了挺多的代码来完善控制台的显示. 也因为我这次要实现多个类似算法,所以将一些共性单独提取出来作为一个类. 如果只想要和算法有关的核心代 ...
- HttpServletRequest 各种方法总结(转)
HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,开发人员通过这个对象的方法,可以获得客户这些信息. 转自: ...
- JDBC入门(2)--- ResultSet之滚动结果集
一.ResultSet之滚动结果集 ResultSet表示结果集,它是一个二维的表格.ResultSet内部维护一个行光标(游标),ResultSet提供了一系列的方法来移动游标: void befo ...
- C#语言数据类型
整数类型 sbyte -128~127之间 byte 0~255 short(Int16) -32768~32768 ushort(UInt16) 0~65535 Int (Int32) ...
- python用random产生验证码,以及random的一些其他用法
产生随机验证码函数 import random def get_code(): code = '' for i in range(5): num = str(random.randrange(10)) ...