06-模板层

Posted venicid

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了06-模板层相关的知识,希望对你有一定的参考价值。

1、模板语言

views

from django.shortcuts import render


def index(request):
    name = alex
    # return render(request, ‘index.html‘)   # 不向html传递参数
    return render(request, index.html, {name: name})

 

 

不向html传递参数

技术分享图片

 

技术分享图片

 

 

 2、模板语法

    """
    模板语法:
        变量:{{}}
            1.深度查询    句点符
            2.过滤器   {{value|filter_name:参数}}

        标签:{% %}

    """

 

 

  1.locals() 传递所有变量

  view文件:

from django.shortcuts import render

def index(request):
    
    ######### 深度查询 ############ 
    name = alex
    num = 10
    li = [11, 22, 33]
    dic = {name: tom, age: 42}
    flag = True

    class Person(object):
        def __init__(self, name, age):
            self.name = name
            self.age = age

    alex = Person(alex, 22)
    jack = Person(jack, 33)       # 对象

    person_list = [alex, jack]      # 对象list

    return render(request, index.html, locals())  # 把所有的变量传递到模板文件

 

 

模板文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<h1>locals() 传递所有变量</h1>
<p>{{ name }}</p>
<p>{{ num }}</p>
<p>{{ li }}</p>
<p>{{ dic }}</p>
<p>{{ flag }}</p>
<p>{{ alex }}</p>
<p>{{ jack }}</p>
<p>{{ person_list }}</p>

</body>
</html>

 

 

技术分享图片

 

  2.深度查询

<h1>深度查询</h1>
<p>{{ li.1 }}</p>
<p>{{ dic.name }}</p>
<p>{{ alex.name }}</p>
<p>{{ jack.age }}</p>
<p>{{ person_list.1.age }}</p>

 

技术分享图片

 

  2.模板之过滤器

view

from django.shortcuts import render

def index(request):
    # ############ 过滤器 #############

    import datetime
    now = datetime.datetime.now()

    now_list = []

    file_size1 = 1240
    file_size2 = 124000

    text_word = "You have 14 unapplied migration(s). Your project may not work properly until you apply the "                 "migrations for app(s): admin, auth, contenttypes, sessions.python manage.py migrate"

    link = "<a href=‘‘>click</a>"

    num_list = [111, 222, 333]

    desc = this is a pict

    return render(request, index.html, locals())  # 把所有的变量传递到模板文件

 

 

 html

<h1>过滤器</h1>
<p>{{ now }}</p>
<p>{{ now|date:‘Y-m-d‘ }}</p>

<p>{{ now_list }}</p>
<p>{{ now_list|default:‘数据为空‘ }}</p>

<p>{{ file_size1 }}</p>
<p>{{ file_size2 }}</p>
<p>{{ file_size1|filesizeformat }}</p>
<p>{{ file_size2|filesizeformat }}</p>

<hr>
<p>{{ text_word }}</p>
<p>{{ text_word|truncatechars:4 }}</p>
<p>{{ text_word|truncatewords:4 }}</p>

<hr>
<p>{{ link }}</p>
<p>{{ link|safe }}</p>

<hr>
<p>{{ num_list.1|add:999 }}</p>

<hr>
<p>{{ desc|upper }}</p>

 

 

 技术分享图片

技术分享图片技术分享图片

 

 技术分享图片

 技术分享图片技术分享图片

 

技术分享图片

技术分享图片   技术分享图片

 技术分享图片

 

 技术分享图片

  技术分享图片

技术分享图片

 

技术分享图片

 技术分享图片

技术分享图片

技术分享图片

技术分享图片

 

 其他常用的模板过滤器

 技术分享图片

 

  运算

技术分享图片技术分享图片

 

  大小写转换

技术分享图片技术分享图片

 

 

  3、模板之标签

 

以上是关于06-模板层的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序开发--模板(template)使用,数据加载,点击交互

为啥模板测试不丢弃片段?

VSCode自定义代码片段——.vue文件的模板

VSCode自定义代码片段1——vue主模板

VSCode自定义代码片段2——.vue文件的模板

VSCode自定义代码片段(vue主模板)