PythonDjango 母版和继承解析

时间:2021-05-22

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

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

定义块:

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

views.py 中添加函数:

from django.shortcuts import render, redirect, HttpResponsefrom app01 import modelsimport datetimedef muban_test(request): return render(request, "muban_test.html")

urls.py 中添加对应关系:

from django.conf.urls import urlfrom django.contrib import adminfrom app01 import viewsurlpatterns = [ # 母板 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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章