Python Django 母版和继承解析

yipeiwu_com6年前Python基础

可以把多个页面相同的部分提取出来,放在一个母板里,这些页面只需要继承这个母板就好了

通常会在母板中定义页面专用的 CSS 块和 JS 块,方便子页面替换

定义块:

{% block 名字 %}
{% endblock %}

views.py 中添加函数:

from django.shortcuts import render, redirect, HttpResponse
from app01 import models
import datetime
def muban_test(request):
  return render(request, "muban_test.html")

urls.py 中添加对应关系:

from django.conf.urls import url
from django.contrib import admin
from app01 import views
urlpatterns = [
  # 母板
  url(r'^muban_test/', views.muban_test),
]

muban.html:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<hr>
{# 定义母板 #}
{% block page-main %}
{% endblock %}
<hr>
</body>
</html>

muban_test.html:

{# 首先继承母板 #}
{% extends 'muban.html' %}
{# 这里的名字 page-main 和继承的母板的名字要相符 #}
{% block page-main %}
  <h1>hello world</h1>
{% endblock %}<br data-filtered="filtered"><br data-filtered="filtered"><h1>Test</h1>

运行结果:

可以看到,muban_test.html 中没有写 hr,但是显示了从 muban.html 继承过来的 hr

muban_test.html 中写的 test 也没有显示出来,因为它是把块中的内容贴到母板中块的部分

views.py 函数中 return 的是 muban_test.html,而不是 muban.html

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Django在admin后台集成TinyMCE富文本编辑器的例子

Django在admin后台集成TinyMCE富文本编辑器的例子

Django原生的TextField并不友好,集成TinyMCE富文本编辑器 Django版本:1.11.5 TinyMCE版本:4.6.7 第一步:从官网下载TinyMCE https...

python实现向ppt文件里插入新幻灯片页面的方法

本文实例讲述了python实现向ppt文件里插入新幻灯片页面的方法。分享给大家供大家参考。具体实现方法如下: # -*- coding: UTF-8 -*- import win32...

Python的净值数据接口调用示例分享

代码描述:基于Python的净值数据接口调用代码实例 关联数据:净值数据 接口地址:https://www.juhe.cn/docs/api/id/25 #!/usr/bin/pyt...

python中将\\uxxxx转换为Unicode字符串的方法

今天碰到一个很有意思的问题,需要将普通的 Unicode字符串转换为 Unicode编码的字符串,如下: 将 \\u9500\\u552e 转化为 \u9500\u552e 也就是 销售...

Python中创建二维数组

Python中创建二维数组

二维数组 二维数组本质上是以数组作为数组元素的数组,即“数组的数组”,类型说明符 数组名[常量表达式][常量表达式]。二维数组又称为矩阵,行列数相等的矩阵称为方阵。对称矩阵a[i][j]...