社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Django

解析Django模板时的操作顺序

John Dowling • 5 年前 • 1768 次点击  

我试图弄清楚当呈现html模板时,Django如何处理操作顺序。

以下面的例子来说明我想回答的问题。

我有一个基本模板“{%includes%}”包含“{%block%}”语句的一段代码。

此基模板用于“{%extends%}”,并且在此子模板中重写“{%block%}”语句。

公共.html

<div>
{% block content %}{% endblock %}
</div>

基.html

{% include common.html %}

子.html

{% extends 'base.html'%}
{% block content %}
..... some code
{% endblock %}

从我的测试来看,这个块并没有像我预期的那样被重写,我是做错了什么,还是这取决于Django模板解析中的操作顺序。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/49226
 
1768 次点击  
文章 [ 1 ]  |  最新文章 5 年前
Daniel Roseman
Reply   •   1 楼
Daniel Roseman    6 年前

这实际上与操作顺序无关,而与 include 标签从 the docs :

include标记应被视为呈现此子模板并包含HTML的实现,而不是解析此子模板并包含其内容,就好像它是父模板的一部分一样这意味着包含的模板之间没有共享状态每个包含都是一个完全独立的呈现过程。

计算块 之前 包括在内这意味着包含来自另一个模板的块的模板将包含具有 已经评估和呈现 -不是可由扩展模板等重写的块。