html静态模板继承,Django框架(七)-- 模板层:模板导入、模板继承、静态文件...
一、模板导入
要复用一个组件,可以将该组件写在一个文件中,在使用的时候导入即可
在模板中使用
1、语法
{% include '模板名字' %}
2、使用
ad.html页面
Panel title
Panel title
Panel title
base.html页面,将ad模板导入使用
Title
{% include 'adv.html' %}
二、模板的继承
Django模版引擎中最强大也是最复杂的部分就是模版继承了。模版继承可以让您创建一个基本的“骨架”模版,它包含您站点中的全部元素,并且可以定义能够被子模版覆盖的 blocks 。
1、使用模板的继承
(1)写一个母版
写一个母版,留有一个或多个可扩展的区域。母版中主要是使用空的block完成页面的骨架搭建
{% block 名字 %}
可以内容
{% endblock %}
{% block title %}My amazing site{% endblock %}
(2)在子模板中使用
子模板主要是用内容填充母版中空的block
#extends 告诉模板引擎,这个模板继承了另一个模板
{% extends "base.html" %}
{% block 名字 %}
子模板的内容
{% endblock 名字 %}
{% extends "base.html" %}
{% block title %}My amazing blog{% endblock %}
{% block content %}
{% for entry in blog_entries %}
{{ entry.title }}
{{ entry.body }}
{% endfor %}
{% endblock %}
2、强调(注意点)
子模板如果没有重写母版中的block,那么就用父级的block的内容。如案例中的 sidebar block没用重写,那么使用母版中sidebar block中的内容
一旦子模板重写了模板中的盒子,即使母版中block有内容,也会覆盖母版中的内容显示子模板中的内容
在base模版中设置越多的 {% block %} 标签越好。请记住,子模版不必定义全部父模版中的blocks,所以,你可以在大多数blocks中填充合理的默认内容,然后,只定义你需要的那一个。多一点钩子总比少一点好。
为了更好的可读性,你也可以给你的 {% endblock %} 标签一个 名字 。例如:
{% block content %}
...
{% endblock content %}
不能在一个模版中定义多个相同名字的 block 标签。
三、静态文件
1、在配置文件settings中配置过静态文件
STATIC_URL = '/static/'STATICFILES_DIRS=[
os.path.join(BASE_DIR,'static')
]
2、导入使用静态文件
在静态文件 static 中,可以放置css文件、js文件、img文件、第三方库文件等,要使用这些静态文件,需要将它们导入到模板中。
该方法已经写死了路径,一旦配置文件中的 STATIC_URL 发生改变,就无法找到文件
3、动态获取
(1)方法一:使用 static 标签函数
{% load static %}#static返回值,会拼上传参的路径
{% static "参数用来传参" %}
#案例,利用static函数,在函数中拼接好路径,return到模板中
(2)方法二:使用 get_static_prefix 标签
{%load static%}#get_static_prefix返回值是:静态文件的地址,相当于/static/#注意在css前面不要加‘ / ’
{% get_static_prefix %}css/mycss.css
html静态模板继承,Django框架(七)-- 模板层:模板导入、模板继承、静态文件...相关推荐
- Django框架 之 Form表单和Ajax上传文件
Django框架 之 Form表单和Ajax上传文件 浏览目录 Form表单上传文件 Ajax上传文件 伪造Ajax上传文件 Form表单上传文件 html 1 2 3 4 5 6 7 <h3& ...
- Django框架学习20--模板变量,模板标签,模板过滤器及自定义模板过滤器,自定义模板标签
1.模板变量 string 字符串和 int 类型,通过key名称直接取值,如:{{ n_name }} list类型的取值,通过点下班取值,如:{{ fancy.0 }}.{{ fancy.1 }} ...
- Django框架的模型层之多表操作
目录 一 创建模型 二 表记录的增删改 一对多 多对多 三.基于对象的跨表查询 一对一查询(Author 与 AuthorDetail) 一对多查询(publish与book) 多对多查询 (Auth ...
- django框架之路由层 视图层......
Django 框架结构: urlspy:路由层 views.py:视图层 templates:模板层 models.py:模型层 路由层 数据处理结果request,是由wsgiref完成 1. 路由 ...
- Django MVT详细说明(三)模板T
模板使用 一.模板介绍 1,作为Web框架,Django提供了模板,可以很便利的动态生成HTML 2,模版系统致力于表达外观,而不是程序逻辑 3,模板的设计实现了业务逻辑(view)与显示内容(tem ...
- python处理流程-分析Python的Django框架的运行方式及处理流程
之前在网上看过一些介绍Django处理请求的流程和Django源码结构的文章,觉得了解一下这些内容对开发Django项目还是很有帮助的.所以,我按照自己的逻辑总结了一下Django项目的运行方式和对R ...
- Python的web框架Django(1):HTTP、简介、静态文件配置、路由系统、视图函数、模板语言、ORM、Ajax、分页器、forms、Cookie、Session、中间件、ModelForm
1. HTTP协议 1)HTTP请求协议 请求格式 POST(方法) /form/entry(URI) HTTP/1.1(协议版本) HOST:hackr.jp(服务端地址) Connection:k ...
- 从零开始的Django框架入门到实战教程(内含实战实例) - 01 创建项目与app、加入静态文件、模板语法介绍(学习笔记)
目录 1. 安装Django 2. 创建项目(startproject) 2.1 创建项目 2.2 介绍项目文件 2.3 APP(startapp) 3. 走通流程(urls, views, runs ...
- html语言可以写模版继承吗,Django框架(十一):模板介绍、模板语言、模板继承、HTML转义...
1. 模板介绍 1.1 模板的功能 产生html,控制页面上展示的内容.模板文件不仅仅是一个html文件. 模板文件包含两部分内容: 静态内容:css.js.html. 动态内容:用于动态去产生一些页 ...
最新文章
- 线性表List的基本创建
- 谈一谈算法工程师的落地能力
- 如何修改datagrid行的高度_如何开出一份完美的信用证?
- poj 3469 Dual Core CPU 最小割
- leetcode103JAVA_[LeetCode] 103. Binary Tree Zigzag Level Order Traversal Java
- c# 获取word表格中的内容_Java 在Word中创建嵌套表格
- HDU 3315 My Brute
- CAD软件中如何自定义CAD填充图案?
- 北辰创业笔记:百度霸屏之长尾关键词是什么
- NOI试题(题目+答案)(二)
- 醋醋SEO基础入门教程_seo入门基础知识
- 计算机睡眠打印机不可用设置,win7系统打印机属性显示不可用的解决方法
- 几种常用网页文本编辑器总结
- tips pycharm 配搭git
- 【工业互联网】国内外工业互联网平台对比分析研究
- 超详细的逐句介绍Java网络编程之Socket类函数源码讲解(全)
- Android手机文件及文件夹目录详解
- USB接口那么多!!你都认识吗??知道他们的区别吗??
- 20世纪最伟大的十大算法
- codeforces 628.div2