博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django模版语言的复用 1. include标签--模版导入 2.inclusion_tag自定义标签--模版导入 3.母版...
阅读量:4956 次
发布时间:2019-06-12

本文共 2554 字,大约阅读时间需要 8 分钟。

include标签--模版导入

'''前提:项目中,往往会出现多个页面拥有一个或几个相同的页面版块,或是一个页面多个页面版块是相同的如何运用:可以将多个样式标签的集合进行封装,对外提供版块的名字(接口),在有该版块的页面中直接导入即可语法:{% include '版块页面的路径' %}'''

公共的页面版块

公告页面版块的样式

/* static/css/public.css *//* 该样式文件是为公告页面代码块提供页面布局的css样式 */.public {    /* 具体的css样式块 */}

使用公告版块的页面们

first
{
% include 'public.html' %}
second
{
% include 'public.html' %}
'''link导入静态的css样式include标签导入静态的html页面'''

inclusion_tag自定义标签--模版导入

'''前提:与include标签出现的页面需求很类似,但是这些不是完全相同的版块,因为版块内的细节不是完全一致如何运用:1. 先封装相似的页面标签结构,为数据不同且页面标签个数也不同的地方采用Django模版语言写活(数据决定了最终标签个数)2. 自定义inclusion_tag,将封装的页面文件丢给inclusion_tag装饰器,自定义的函数的参数为不同的数据,函数的返回值就是用关键词形式将参数返回3. 在拥有该相似版块的页面中导入自定义tag,并使用自定义tag传入具体实参即可'''

公共类似的页面版块

    {
    % for foo in list %}
  • {
    { foo }}
  • {
    % endfor %}

自定义inclusion_tag

# app/templatetags/owen_tags.pyfrom django.template import Libraryregister = Library()@register.inclusion_tag('public_tag.html')def header_list(list):    return {
'list': list}

使用公告版块的页面们

first_tag
{
% load owen_tags %}{
% with [1, 2, 3, 4, 5] as list %} {
% header_list list %}{
% endwith %}
second_tag
{
% load owen_tags %}{
% with [10, 30, 50] as list %} {
% header_list list %}{
% endwith %}

母版

'''前提:多个页面的多个版块相同或相似,只有少部分版块是自己独有的,将共有的部分全部提出封装,因为包含了页面大部分版块结构,所以我们称呼其为 母版如何运用:1. 先封装母版:大部分版块相同或相似的base.html,在特定的位置留出相应的block接口2. 每个需要运用母版页面的页面来继承母版 {% extends '母版页面的路径' %}3. 在自己页面中的任意位置书写block中自身独有的页面内容 {
{% block block名 %} ... {% endblock %}}4. 如果需要继承母版block中原有的内容,使用 {
{ block.super }} 来获取'''

公共的母版页面

    
{<div></div> { title }}
{
% block style %} {
# 为继承该母版的页面引入自身样式文件通过的block #} {% endblock %}
{
% block own %} {
# 为继承该母版的页面提供书写自己页面独有内容的block #}{% endblock %}

页面样式文件均放在static/css中,每个html文件按需导入自己的css文件

/* static/css/base.css *//* static/css/login.css *//* static/css/register.css */

继承母版的login页面

{% extends 'base.html' %}{
% block style %}
{
% endblock %}{
% block own %}{
{ block.super }} {
# 继承该母版的block中原有的内容 #}
{
% endblock %}

继承母版的register页面

{% extends 'base.html' %}{
% block own %}
注册页面独有的注册版块
{
% endblock %}{
% block style %}
{
% endblock %}

 

转载于:https://www.cnblogs.com/lizeqian1994/p/10474118.html

你可能感兴趣的文章
动态缓存技术之CSI,SSI,ESI
查看>>
mac 上将.pem文件转为.pub文件
查看>>
整理下心情
查看>>
iTextSharp带中文转换出来的PDF文档显示乱码
查看>>
阶乘因式分解(一)
查看>>
qt学习记录-----3.信号与槽的问题
查看>>
『ORACLE』 内置约束(11g)
查看>>
Vue--学习过程中遇到的坑
查看>>
组件:slot插槽
查看>>
.net压缩图片质量(附demo)
查看>>
equals和==的区别
查看>>
Android6.0指纹识别开发
查看>>
java反射机制剖析(二)— Class Loader
查看>>
走进C++程序世界------异常处理
查看>>
通过用户模型,对数据库进行增删改查操作。
查看>>
去除数组中重复的元素
查看>>
Nginx配置文件nginx.conf中文详解(转)
查看>>
POJ 1988 Cube Stacking
查看>>
POJ 1308 Is It A Tree?(并查集)
查看>>
N进制到M进制的转换问题
查看>>