Python  Django 母版和继承解析

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

通常会在母板中定义页面专用的 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 母版和继承解析 的全部内容, 来源链接: utcz.com/z/346195.html

回到顶部