Django框架学习(四)

内容来源于【2020 最新python教程】第五部分:Django框架课程教学笔记和maple-shaw博客笔记

母版和继承

母版

  1. 一个页面中包含多个页面的公共部分(base.html,母板名字自己随便定义)
  2. 在页面中定义多个block块,让子页面进行覆盖
    注:在子页面中如果不谢block块,则使用模板中写好的block快

继承

  1. {% extends ‘母版的名字’ %}
  2. 重新复写block块
    注:
    1. {% extends ‘母版的名字’ %}中的母版的名字必须带引号,不加引号则被当成变量处理;
    2. {% extends ‘母版的名字’ %}语句写在第一行,上面不再写内容;
    3. 要显示的内容要写在block块里;
    4. 多写一个css\js的block块,包含公共的css和js样式。

组件

  1. 将一小段的html文本写入到文件中(nav.html,名字自己随便定义)
  2. 在模板中写{% include ‘ nav.html ’ %}

静态文件

配置:STATIC_URL=’/static/’
STATICFILE_DIRS=[
os.path.join(BASE_DIR,‘static’)
]
引入:

<link rel='stylesheet' href='/static/相对路径'>#引入css
<script src='/static/相对路径'></script>#引入js
为避免STATIC_URL='/static/'中‘static名字改变就要修改模板中的所有引入,建议采用下述方式引用’
{%load static%}
<link rel='stylesheet' href='{% static '相对路径' %}>

自定义方法

filter、simple_tag、inclusion_tag

  1. 在app下创建一个名为templatetags的python包
  2. 在templatetags中创建一个python文件,文件名可自定义(mytags.py)
  3. 在自定义的文件中导入template模板和写register=template.Library()语句,此步骤为固定写法
from django import template
register=template.Library()#此处的()不能少
  1. 写函数+装饰器
@register.filter#注册过滤器
def add_arg(value,arg):#自定义过滤器最多两个参数,value为过滤器变量
    #功能,字符串拼接
    return "{}_{}".format(value,arg)

@register.simple_tag#注册simple_tag
def str_join(*args,**kargs):#参数个数没有限制

return XXX

@register.inclusion_tag(‘li.html’)#注册inclusion_tag
def str_join(num):#参数个数没有限制

return {'num':range(1,num+1)}

将参数用字典的形式传入’li.html‘模板中进行渲染
``
li.html

#修改翻页中页面总数的部分代码
<ul>
	{% for i in num %}
	     <li> {{li}} </li>
	 {% endfor %}
</ul>

5.使用

{% load mytags %}
#使用自定义过滤器
{{ rongmei.name|add_arg:'tanqi' }}
#使用simple_tag
{% str_join 'a' 'b' k1='c' k2='d' %}
#使用inclusion_tag
{%show_li 10%}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值