django第七天(模板的复用性,include标签和母版)
2024-08-30 12:07:00
django第7天模板
include标签
模板的共用
a 模板需要到使用到 登陆界面
b 模板需要使用到 登陆界面
可以把登陆界面提取到公共的模板c
为什么要用:
都需要使用相同的界面,减少代码冗余
公共的模板c
html文件
<div class = "login">
详细代码
</div>
css文件
.login{
具体的css样式
}
然后在 a模板和b模板中加载模板c和其样式
<link rel = 'stylesheet' herf='/static/css/login.css'
{% include 'c模板名' %}
inclusion_tag自定义标签
不是完全相同的模块,因为模块的细节不是完全一致,而是模块有相似的结构
自定义inclusion_tag
首先是tag,故跟自定义tag类似
在app文件夹下新建templatetags包!!!!,
在该文件夹下新建一个blog_tags.py文件
from django.template import Library
register = Library()
@register.inclusion_tag('public_tag.html',name="h_list")#打开哪个页面,将list传给这个页面,起了别名后,原来的函数名就不起作用了,只能使用别名
def header_list(list):
return {'list':list}
公共模块
public_tag.html
<ul class="public_tag">
<!-- 公用页面板块的详细html代码 -->
{% for foo in list %}
<li>{{ foo }}</li>
{% endfor %}
</ul>
模块a
{% load blog_tags %}
{% with [1, 2, 3, 4, 5] as list %}
{% h_list list %}
{% endwith %}
模块b
{% load blog_tags %}
{% with [10, 30, 50] as list %}
{% h_list list %}
{% endwith %}
母版
前提:多个页面的多个板块相同或相似,只有少部分是自己独有的,将共有的部分全部提出封装,包含了页面大部分结构,所以我们称其母版
如何应用:
1.先封装母版:大部分板块相同 相似的base.html,在特定的位置留出对应的block的接口,如果有自身样式,需要留出样式block
2.每个需要运用母版页面的页面来继承母版
{% extends "base/base.html" %}
3.在自身页面中的任意位置书写block中自身独有的页面内容
{% block right %}
<ul>
<li>hah</li>
<li>hah</li>
<li>hah</li>
</ul>
{% endblock %}
4.如果需要继承母版block中原有的内容
{{block.super}}
母版
{% block right %}
子模块
#继承母版结构
{% extends "base/base.html" %}
#定义自己的独特部分
{% block right %}
<ul>
<li>hah</li>
<li>hah</li>
<li>hah</li>
</ul>
{% endblock %}
继承母版block中原有的内容
{{block.super}}
最新文章
- http请求的开销
- Linux各版本的本地root密码破解方法
- Poj OpenJudge 百练 Bailian 1008 Maya Calendar
- jpGraph的应用及基本安装配置 BY 命运
- hdoj 1061 Rightmost Digit【快速幂求模】
- android style=";@[package:]style/style_name"; ----------styles.xml
- resin-pro-4.0.34 服務器在windows环境下的配置
- [日常] Codeforces Round #440 Div.2 大力翻车实况
- eclipse 的缓存问题
- mongos-sharding连接池配置
- Qt做发布版,解决声音和图片、中文字体乱码问题(需要在main里写上QApplication::addLibraryPath(";./plugins";)才能加载图片,有图片,很清楚)
- [转]Ubuntu 16.04安装有道词典
- 2018-2019-1 20189221 《Linux内核原理与分析》第六周作业
- 2018年9月28日CCPC秦皇岛站参赛总结
- aaronyang的百度地图API之LBS云与.NET开发 Javascript API 2.0【把数据存到LBS云1/2】
- 【sql进阶】查询每天、每个设备的第一条数据
- Mac下进行基于java服务端语言的微信公众号本地js-sdk调试的大致方法
- 待字闺中之快排单向链表;leetcode之Sort List
- windows之死活格式化不了D/E/F盘
- BZOJ 3594 [Scoi2014]方伯伯的玉米田(二维树状数组)