python include_tag_python全栈开发day65-templates:tags、母版和继承、组件、静态文件相关、simple_tag和inclusion_tag...

一、昨日内容回顾

1.MVC和MTV框架

MVC:  model 模型  存写数据

view  视图  给用户展示页面

control  控制器  负责调度 传递指令

MTV:

M:model   模型   ORM操作

T:template  模板   返回HTML页面

V:view  视图    负责主要的业务逻辑

2.变量和点(.)的用法

{{变量名}}

{name_list.0}

{{name_dict.key}}

{{p1.name}}

{{dict.items}}

先调用字典的key值,再属性和方法

3.filters

1.语法:

{{变量|filter:参数}}

2.内置的filter

default:‘noting’

filesizeformat:

add:‘1’

upper

lower

title

rjust:20

ljust:20

center:20

length

slice:“::”

first

last

join:"++"

truncatechars:18

date:"Y-m-d H:i:s"

safe

4.自定义filter

1.在应用app01下创建一个叫temlatetags的python包

2.在templatetags的文件夹下创建py文件 命名

3. 在py文件中写代码from django import template

register = template.Library()

@register.filter

def add_sb(value,arg='aaa'):

return "{}_sb_{}".formart(value,arg)

@register.filter(name='sb')

def add_sb(value,arg='aaa'):

return "{}_sb_{}".formart(value,arg)

4. 使用自定义filter

{% load myfilters %}

{{ name|add_sb:'xxx'}}

{{ name|sb:'xxx'}}

二、今日内容总结

1.tags

1) forloop 系列:

forloop.counter

forloop.counter0

forloop.revcounter

forloop.revcounter0

forloop.first

forloop.last

forloop.parentloop

2)

(1) for 。。。empty。。。

{%for name in namelist%}

{%empty%}

{%endfor%}

(2)if  else ..........

if 语句支持and、or、==、、!=、<=、>=、in、not in、is、is not判断

不支持加减乘除等数学运算:

偶数判断:{%  if forloop.counter|divisibleby:2  %}

(3){% csrf_token%}

这个标签用于跨站请求伪造保护

在页面的form表单里面写上{% csrf_token %}

(4)with

{% with total=business.employees.count %}

{{ total }} employee{{ total|pluralize }}

{% endwith %}

(5) 注释 {#  #}

(6) 注意事项

a.Django模板语言不支持连续判断:

{% if a > b > c %} 不支持 ——> {%if a>b and b>c%}

python:

JS:

b. Django的模板语言中属性的优先级大于方法

2.母版和继承

1). 为什么要模板

节省代码 修改方便。

把所有的公共内容提取到一个页面,在页面上定义block,继承的时候在block块中写内容,覆盖掉母版中的block

2) 用法:

模板:就是一个普通的HTML页面

定义多个block

使用:

继承模板{% extends ‘base.html’%}

使用母版中定义好的block块

在block中写自己的内容

3) 注意事项

(1) 模板中可以定义多个block,一般在定义两个css和js块

(2) {% extends ‘base.html’%}  写在第一行 不要在block之外写东西

(3)  {% extends ‘base.html’%} 中要写字符串 是你要继承的模板的名字

3.组件

1 。定义一个HTML文件

很多页面都要用的内容

2 。在要用的页面使用

{%  include 'nav.html'  %}

4.静态文件相关

1)  {%   load  static%}

"{%  static ‘/css/...’ %}"

2)   "{%  get_static_prefix%}imgs/aa.jpg"

3)  {% get_static_prefix as STATIC_PREFIX %}

      Hi!

5.simple_tag和inclusion_tag

1) simple_tag

和自定义filter类似,只不过接收更灵活的参数。

定义注册simple tag

@register.simple_tag(name="plus")

def plus(a, b, c):

return "{} + {} + {}".format(a, b, c)

使用自定义simple tag

{% load app01_demo %}

{# simple tag #}

{% plus "1" "2" "abc" %}

2) inclusion_tag

三、预习和扩展

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值