html中的block、extends、include三者的区别和用法

block extends include三者的差别跟用法

一、block定义基础模板,在html内容中定义多个block块,block由子模板引用同名block块,来决定是否替换这些部分

{% block title %}一些内容,这里可不填{% endblock %}
{% block content %}一些内容,这里可不填{% endblock %}
{% block footer %}一些内容,这里可不填{% endblock %}

这里 title content footer 不是变量,名字自定义(比如你也可以写成{% block body %})

block一般定义在base.html中,block是可以在那些继承base的html中添加内容的区

二、子模板的引用方式
{% extends "base.html" %}
{% block title %}The current time{% endblock %}
{% block content %}<p>It is now {{ current_date }}.</p>{% endblock %}

第一句是固定的格式,必须为模板中的第一个模板标记
extends的参数一般为字符串,也可为变量
可带路径,相对路径,以 TEMPLATE_DIRS 的模板目录 为基准
子模板决定替换的block块,无须关注其它部分,没有定义的块即不替换,直接使用父模板的block块 

三、引用上级代码块在其基础上进行一些修改 {{ block.super }}
{% block footer %}
{{ block.super }}
AAAAA
{% endblock %}

Django模板系统——模板包含另一模板 include

使用模板加载API机制之后,可用的包含其它模板标签
{% include 'nav.html' %}
{% include "nav.html" %}

可带路径,相对路径,以 TEMPLATE_DIRS 的模板目录 为基准
{% include 'includes/nav.html' %}

可使用变量名
{% include template_name %}
包含的变量都会统一处理,不区分是第几层模板

Django的{{ block.super }}模板标签
Django模板中{{ block.super }}这个标签非常有用,可以做到不仅仅是覆盖父模板,而是在父模板基础上追加内容。当然也可以覆盖。

这就给了我们灵活性:既可以完全重写,也可以复用父模板,也可以在复用的基础上扩展。

 

二 locals() 技巧

locals()返回一个包含当前作用域里面的所有变量和它们的值的字典

from django.shortcuts import render_to_response
import datetime
def current_datetime6(request):
    current_date = datetime.datetime.now()
    return render_to_response('current_datetime6.html', locals())

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 用例图includeextends是两种不同的关系。 include表示一个用例需要另一个用例的支持,即一个用例包含了另一个用例。例如,一个购物车用例需要一个添加商品用例的支持,因为购物车必须要有商品才能进行结算。 extends表示一个用例可以根据需要扩展另一个用例,即一个用例可以在另一个用例的基础上进行扩展。例如,一个下单用例可以根据需要扩展一个优惠券用例,如果用户有优惠券,则可以使用优惠券进行折扣。 总之,includeextends都是用例图的关系,用于描述用例之间的依赖和扩展关系。 ### 回答2: 在用例图IncludeExtends是两种重要的关系关联符号。IncludeExtends是用于面向对象分析(OOA)和面向对象设计(OOD)的很重要的UML建模工具。它们都是UML的扩展用例关系,具体如下: 1.Include(包含关系): Include是用来描述一个用例之间的整体和局部关系。它通常描述的是一种常见的业务逻辑。被包含用例通常是一些比较通用的流程或条件。包含用例是一个调用者(调用了包含用例的用例)和一个被调用者(被包含用例)之间的关系,也是一个强制性的关系。这意味着,如果调用者用例执行成功的话,被包含用例也必须执行成功。 举个例子:有个售货员要卖一些商品。但在出售商品操作之前,需要将这些商品从库房里拿出来,并填写商品编号、库存数量等相关信息。这个情况下,售货员用例要执行一个“拿出商品”子用例,直到这个子用例操作成功,才能继续执行出售商品操作。 Include关系的表示方式是:从调用者用例指向被包含用例,并在箭头上标注“包含(include)”字样。 2.Extends(扩展关系): Extends是描述用例之间继承和扩展关系的一种关系。它用于描述一种可选的业务逻辑。这意味着,在执行主用例时,如果扩展用例的执行条件被满足了,那么就会执行扩展用例的操作。如果没有满足条件,则不会执行扩展用例的操作。 举个例子:有个在线购物网站,用户可以选择支付或者使用积分支付。如果用户选择使用积分支付,就会执行扩展用例“检查用户积分”,如果用户的积分充足,则会执行积分支付操作;否则,就会执行普通支付。 Extends关系的表示方式是:从主用例指向扩展用例,并在箭头上标注“扩展(extend)”字样。 综上所述,IncludeExtends是UML比较常用且重要的关系符号。Include表示调用一个在别处定义好的子用例,直到子用例调用成功后才会继续执行主用例;而Extends则是描述主用例和可选扩展用例之间的关系。对于用例建模过程IncludeExtends是非常有用的工具,有利于描述更加清晰的业务逻辑和模型。 ### 回答3: 用例图是软件工程一种重要的建模工具,用于描述系统的需求功能和用户之间的交互。在用例图includeextends是两种重要的关系,分别用于描述用例之间的引用和拓展关系。 首先,include关系表示一个用例包含另一个用例。通常情况下,这种关系发生在某个用例需要另一个用例的支持时。比如,在一个在线购物系统,添加商品到购物车的用例就需要在用户登录之后才能进行,因此可以把“用户登录”与“添加商品到购物车”之间建立include关系,以表明后者依赖于前者。在实现时,include关系可以被转换为代码的函数调用或子过程调用,便于代码重用和组织。 其次,extends关系表示一个用例可以扩展另一个用例。这种关系通常发生在某个用例需要在某些条件下进行特定的操作时。比如,在一个社交网络系统,用户发表帖子的用例可以通过extends关系扩展为“为帖子加标签”的用例,表示在发布帖子时可以选择为其添加标签以达到更好的分类和检索效果。extends关系与include关系的区别是,前者是可选的,不影响原有用例的逻辑和实现,后者则是必需的,否则无法完成自身的功能。 在用例图includeextends关系的建立需要进行深入的分析和设计,以确保系统的功能和代码的结构合理、清晰和易于维护。同时,企业可以使用UML工具来实现和管理这种关系,以提高软件开发效率和产品质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值