0
点赞
收藏
分享

微信扫一扫

第一章(四):Django框架的模板(DTL):变量、标签、模板过滤器、模板继承、配置模板文件(staticfiles)

兽怪海北 2023-05-04 阅读 70

系列文章目录

备注:这里是Django系列文章的所有文章的目录

第一章(一) : Django框架如何创建项目、创建应用、创建templates;如何启动django项目;
第一章(二):Django框架的模式、路由、视图;
第一章(三):Django框架的视图函数、视图类的认识及常规使用;


备注:欢迎查阅python之Django框架,如有疑问,欢迎评论,一定回复!!!

文章目录


前言

提示:这里可以添加本文要记录的大概内容:
Django的模板包含:动态部分、静态部分。动态部分即是Django的模板语言DTL,静态部分即是HTML、CSS、JavaScript。
模板语言主要是:模板变量、模板标签、模板过滤器。


提示:以下是本篇文章正文内容,如有疑问,欢迎评论中指出,定在一周内予以回复。

一 . 模板变量

模板变量可以被看作是HTML文件中的占位符。当Django模板引擎执行时,会用模板变量实际的值对其进行替换。

1.1 . 模板变量的类型

1.2 . 模板变量的应用:{{ 变量名 }}

注意:变量名前后都有空格,变量名可以由字母数字下划线组成,但不能包含空格和其它字符

1.2.1 . 变量使用实例

app中views.py的视图函数:

def var(request):
    '''
    变量的使用
    :param request:
    :return:
    '''
    lists = ['java', 'python', 'C', 'C#', 'JavaScript']
    dicts = {'姓名': "张三", "年龄": 25, "性别": '男'}
    return render(request, 'var.html', {'lists': lists, 'dicts': dicts})
    # return render(request, 'var.html', locals())

templates中,变量的引用:

<body>
    {{ lists }}
    <table border=1>
        <tr>
            <td>{{ lists.0 }}</td>
            <td>{{ lists.1 }}</td>
            <td>{{ lists.2 }}</td>
            <td>{{ lists.3 }}</td>
            <td>{{ lists.4 }}</td>
        </tr>
    </table>
<br>
    {{ dicts }}
    <table border=1>
        <tr>
            <td>{{ dicts.姓名 }}</td>
            <td>{{ dicts.年龄 }}</td>
            <td>{{ dicts.性别 }}</td>
        </tr>
    </table>
</body>

urls.py中,路由:

urlpatterns = [
    path('var/', views.var, name='app3_var'),
]

1.2.2 . 变量使用实例-效果释义

  • 1.2.1 中,视图函数中,render()所返回的数据的名称,一定是要和templates中{{ 变量名 }}一致;
  • 当变量是list/dict/对象时,引用其内部值:{{ list.索引 }}、{{ dict.keys }}
  • 访问路由,页面展示:
    变量的引用

二 . 模板标签

模板标签的需要使用**标签限定符{% %}**进行包裹。
标签的作用:载入代码渲染模板,或者对传入的参数进行逻辑判断和计算。

2.1 . 常见标签

模板标签描述
{% if %}{% elif %}{% else%}{% endif %}条件判断模板标签
{% for %} {% empty %} {% endfor %}循环模板标签
{% url %}路由配置的地址标签
{% extends xx%}模板继承标签,从xx模板继承
{% load %}加载相关内容
{% static %}静态资源
{% block %}{% endblock %}一组占位符标签,需要重写模板
{% csrf_token %}用来防护跨站点伪造攻击
{% include 页面 %}包含一个HTML页面

2.2.1 . for循环标签的标签变量

变量描述
forloop.counter0表示当前循环的索引,从0开始计数
forloop.counter表示当前循环的索引,从1开始计数
forloop.revcounter0表示循环中剩余元素的数量,在进行第1次循环时 forloop.revcounter0的值是循环的序列中元素总数减去1,最后一次时,为0
forloop.revcounter表示循环中剩余元素的数量,在进行第1次循环时 forloop.revcounter的值是循环的序列中元素总数,最后一次时,为1
forloop.first表示是否是第1次循环
forloop.last表示是否是最后1次循环
forloop.parentloop嵌套循环中,获取上层的for循环

提示:这里对文章进行总结:

举报

相关推荐

0 条评论