django-基础三(模板templates)

一、模板配置

①、在项目中创建tempaltes文件夹,里面可以存放页面文件
②、在setting配置文件中找到TEMPLATES,DIRS:os.path.join(BASE_DIR, ‘templates’)意思是在根目录的templates中寻找html文件。
③、APP_DIRS:True表示若主tempates文件夹中未找到需要的html,则去app中的文件夹找,但是此app需要在INSTALLED_APPS中注册
④、若html文件都未找到,则抛出一个TemplateDoesNotExist的异常

二、数据渲染

将后台中的内容渲染到网页

在这里插入图片描述

①、列表元组直接可以通过下标读取
②、字典可以通过k来读取对应的值

三、标签符号(if、for、url链接)

1、if&for标签
在这里插入图片描述

注意点:
①、for循环可以使用reverse。{% for book in books reversed %} 进行反向遍历
②、for中提供了一些方法

项次方法说明
1forloop.counter当前循环的下标。以1作为起始值。
2forloop.counter0当前循环的下标。以0作为起始值。
3forloop.revcounter当前循环的反向下标值。比如列表有5个元素,那么第一次遍历这个属性是等于5,第二次是4,以此类推。并且是以1作为最后一个元素的下标。
4forloop.revcounter0类似于forloop.revcounter。不同的是最后一个元素的下标是从0开始。
5forloop.first是否是第一次遍历。
6forloop.last是否是最后一次遍历。

③、{% for book in books %}book中的内容{% empty %} 如果book是空显示这儿 {% endfor%}

2、url反转
通过html中url进行网页的跳转 途中template_app未url中的app_name,index即为path中name,中间通过:连接

在这里插入图片描述

注: 这里的URL可以进行字符串拼接或者进行占位传参
①、字符串拼接:<-a href="{% url ‘book:detail’ book_id=1 %}?page=1">图书详情页面</-a>
②、占位传参:<-a href="{% url ‘book:detail’ book_id=1 page=2 %}">图书详情页面</-a>

3、模板过滤器
文中/表示|

项次过滤器名称用法说明
1add{{ value/add:“2” }}将传进来的参数添加到原来的值上面。这个过滤器会尝试将值和参数转换成整形然后进行相加。如果转换成整形过程中失败了,那么会将值和参数进行拼接。如果是字符串,那么会拼接成字符串,如果是列表,那么会拼接成一个列表。
2cut{{ value/cut:" " }}移除值中所有指定的字符串。类似于python中的replace(args,"")。
3date{{ birthday/date:“Y/m/d” }}将一个日期按照指定的格式,格式化成字符串。
4default{{ value/default:“nothing” }}如果值被评估为False。比如[],"",None,{}等这些在if判断中为False的值,都会使用default过滤器提供的默认值。
5first{{ value/first }}返回列表/元组/字符串中的第一个元素。
6last{{ value/last }}返回列表/元组/字符串中的最后一个元素。
7floatformat
  • {{ 34.353333/floatformat:3}}
  • 34.353
四舍五入
8join{{ value/join:"/" }}类似与Python中的join,将列表/元组/字符串用指定的字符进行拼接.
9length{{ value/length }}获取一个列表/元组/字符串/字典的长度。
10lower{{ value/lower }}将值中所有的字符全部转换成小写。
11upper{{ value/upper }}类似于lower,只不过是将指定的字符串全部转换成大写。
12random{{ value/random }}在被给的列表/字符串/元组中随机的选择一个值。
13safe{{ value/safe }}标记一个字符串是安全的。也即会关掉这个字符串的自动转义。
14slice{{ some_list/slice:“2:” }}类似于Python中的切片操作。
15stringtags{{ value/striptags }}删除字符串中所有的html标签。
16truncatechars{{ value/truncatechars:5 }}如果给定的字符串长度超过了过滤器指定的长度。那么就会进行切割,并且会拼接三个点来作为省略号。
四、include和extends

1、include,加载自定义内容,也可以做标签过滤的动作
在这里插入图片描述

2、extends 模板继承
一般都建议一个base.html。将相同的部分放入此中 通过{% block 名称 %} {% endblock %} 来作为继承者的接口。
然后子模板中 通过block中定义的名称,来编译不同的部分。

五、加载静态文件(css、js)

①、首先确保django.contrib.staticfiles已经添加到settings.INSTALLED_APPS中。
②、确保在settings.py中设置了STATIC_URL。
③、在已经安装了的app下创建一个文件夹叫做static,然后再在这个static文件夹下创建一个当前app的名字的文件夹,再把静态文件放到这个文件夹下。
④、如果有一些静态文件是不和任何app挂钩的。那么可以在settings.py中添加STATICFILES_DIRS,以后DTL就会在这个列表的路径中查找静态文件。

STATICFILES_DIRS = [
	os.path.join(BASE_DIR,"static"),
]

⑤、在模版中使用load标签加载static标签。比如要加载在项目的static文件夹下的style.css的文件。

 {% load static %}
  <link rel="stylesheet" href="{% static 'style.css' %}">

⑥、如果不想每次在模版中加载静态文件都使用load加载static标签,那么可以在settings.py中的TEMPLATES/OPTIONS添加’builtins’:[‘django.templatetags.static’],这样以后在模版中就可以直接使用static标签,而不用手动的load了。
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值