网络编程
位置:首页>> 网络编程>> Python编程>> Python Django 母版和继承解析

Python Django 母版和继承解析

作者:Sch01aR#  发布时间:2023-02-21 09:44:59 

标签: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>

运行结果:

Python  Django 母版和继承解析

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

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

Python  Django 母版和继承解析

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

来源:https://www.cnblogs.com/sch01ar/p/11265187.html

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com