django框架之9:模板结构优化一种是include模板(直接复制)一种是extends,导入和继承可以添加东西

模板的结构优化,也可以说是模板的继承修改,
引入模板的操作:
有时候一些代码是在许多模版中都用到的。如果我们每次都重复的去拷贝代码那肯定不符合项目的规范。一般我们可以把这些重复性的代码抽取出来,就类似于Python中的函数一样,以后想要使用这些代码的时候,就通过include包含进来。这个标签就是include。
传递参数的两种方式:
context方式和通过在include的时候进行with
引入参数:通过context引入

from django.shortcuts import render

# Create your views here.
def front(request):
    context = {
        'username':'cheney',
    }
    return render(request,'front.html',context=context)

模板:
header.html

<ul>
    <li>新闻</li>
    <li>消息</li>
    <li>关于</li>
    <li>美女</li>
    <li>{{ username }}</li>
</ul>

引入参数依旧是通过双花括号包起来
html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    {% include 'header.html' %}
    <p>front 页面</p>
</body>
</html>

include的方式引入header
传参的另一种方式:

{% include 'header.html' with username='lcy' %}

引入模板与模板继承,模板继承与面向对象有点相似

定义基类base.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>
        {% block title %}
    {% endblock %}

    </title>
</head>
<body>

<ul>
    <li>新闻</li>
    <li>消息</li>
    <li>关于</li>
    <li>美女</li>
</ul>
<!--block 提供了子模板去修改的内容-->
{% block content %}
{% endblock %}

<footer>
    网页底部
</footer>
</body>
</html>

title中定义的是网页的标题名称
一个可以修改的块是使用block 和endblock包起来的,

继承和修改block:

{% extends  'base.html' %}
<!--相当于import  引入,不引入或者后引入都是要报错的-->
<!--这是在继承,如果没有用到block的话,就什么都不会显示-->
{% block content %}
<p>这是后台首页</p>
{% endblock %}
{% block title %}
lcy111
{% endblock %}
<!--title 是用来修改网页名字的  -->
from django.shortcuts import render

# Create your views here.
def front(request):
    context = {
        'username':'cheney',
    }
    return render(request,'front.html',context=context)

def cms(request):
    context = {}
    return render(request,'cms.html',context=context)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值