美文网首页
Lesson 9 模板嵌套

Lesson 9 模板嵌套

作者: 拜仁的月饼 | 来源:发表于2020-11-08 20:57 被阅读0次

0. 引入

整套课程地址:click here

我们发现,在一个应用当中,甚至是全局,HTML代码有好多一样的东西,甚至是只需要修改内容。这时候涉及的问题是:那些不变的代码可不可以复用?

这就涉及到了模板继承与嵌套。

网上有一篇文章讲的挺好的,可以参考。click here

1. base.html

不需要变动的代码可以写到base.html当中。代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>{% block title %}{% endblock %}</title>
</head>
<body>
    <div>
        <a href = {% url "home" %}>
            <h3>只要不延毕就好了</h3>
        </a>
    </div>
    <hr>
    {% block content %}{% endblock %}
</body>
</html>

{% block xx %}{% endblock %}是可以被继承、被改写的部分。其他部分则是固定写法。其中,xx{% block %}而起的名字。

2. 复用

比如我们修改一下blog_detail.html的代码。

首先,第一行必须是{% extends "base.html" %}

例:

{% extends "base.html" %}

然后就是对继承部分进行改写。示例:

{% block title %}
    {{ blog_type.type_name }}
{% endblock %}

{% block content %}
    <p>共有{{ blogs | length }}篇博客</p>
    {% for blog in blogs %}
        <a href = {% url "blog_detail" blog.pk %}><h3>{{ blog.title }}</h3></a>
        {% empty %}
        <p>暂无博客,敬请期待!</p>
    {% endfor %}
{% endblock %}

可以看出这是对base.html的继承。改写了{% blog title %}与{% blog content %}两部分。

3. 设置通用templates

如果一个应用一个应用地设置页面,恐怕比较麻烦。那么我们有没有让多个应用共同使用同一模板的方法?

答案是templates文件夹放到根目录去

这时候需要动一下settings.py文件。如下:

TEMPLATES = [ # 只需要改变TEMPLATES中的"DIRS"键值对就可以了。
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [
            os.path.join(BASE_DIR, "templates"), # 设置默认模板位置。改成这样
        ],

然后在根目录创建templates文件夹。把base.html移动到其中。

然后再创建templates/blog文件夹,把blog应用创建的模版html页面移动到其中。

最后修改一下blogs中的views.py文件。如下:

return render_to_response("blog/blog_list.html", context)
# 只需要修改一下render_to_response中第一个参数。加上正确的路径即可。

本课结束。

相关文章

  • Lesson 9 模板嵌套

    0. 引入 整套课程地址:click here[https://space.bilibili.com/252028...

  • 小程序-template嵌套template的数据传递

    说明 一个页面需要多个界面进行组合模板1:courses-isbuy 代码: 模板2:分类模板 嵌套组合模板(模板...

  • lesson 9 and lesson 10

    A: Hey Nigel, are you up yet? Are you still in bed? B: Wh...

  • 2018-05-17

    函数包装器与模板 函数模板的嵌套 模板与引用 //变量 左值引用 右值引用 原则不能冲突//ref 变量 -> ...

  • ThinkPHP模板布局与继承

    阅读原文 ThinkPHP的模板引擎内置了布局模板功能支持,可以方便的实现模板布局以及布局嵌套功能。 项目目录 全...

  • C++成员模板作为构造函数(Boolan)

    成员模板就是模板类内嵌套不同参数的模板函数,形如: 之前我看视频说成员模板常常用来作为构造函数,让模板类型为子类的...

  • Lesson 9

    SCRIPT I look at the clock and it’s already 5:30. It’s qu...

  • Lesson 9

    学习内容: 课本P 16 Lesson 9,学习听单词的发音 复习要求: 1.和孩子在家练习听单词的发音的技巧; ...

  • LESSON 9

    已完成第一遍粗读,不需要复读。我从中学习到的主要思想是:1、控制消费,利用欲望变成理财的渴望;2、抓住生活中潜在的...

  • LESSON 9

    慢慢的意识到资产与负债的差别,醍醐灌顶的感觉。我们的确不应该为钱去奋斗,应该由我们来支配钱,但自我提升才是一切的关键。

网友评论

      本文标题:Lesson 9 模板嵌套

      本文链接:https://www.haomeiwen.com/subject/zvtkbktx.html