Python - Django - 母版和继承

Posted sch01ar

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python - Django - 母版和继承相关的知识,希望对你有一定的参考价值。

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

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

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 %

运行结果:

技术图片

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

技术图片

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

 

以上是关于Python - Django - 母版和继承的主要内容,如果未能解决你的问题,请参考以下文章

Django中的tags,母版和继承,组件,静态文件相关,自定义simpletag和自定义inclusion_tag

Django-4

模板,母版和继承

Django 模板系统2

django url 反响解析,视图

django模板语言中的extends,block和include