Day48 Djang03 模板层、变量、过滤器、标签、自定义过滤器和标签、静态文件导入

1.模板层

1.1模板语法之变量

在 Django 模板中遍历复杂数据结构的关键是句点字符, 语法: 

{{ var_name }}

 在视图函数views.py中可以给,temprate模板中的temp_test.html传的参数有,列表、字典、日期对象、自定义对象等等传给模板函数。、

模板函数其实就是专门从视图函数中拿取数据,最后显示在网页显示出结果,也就是客户访问的结果。视图函数处理一些逻辑,给出一些视图函数需要的参数等等。

1.2从view.py中写参数传入,temprate模板中,模板中的html根据需要提取

view.py的代码:

from django.shortcuts import render, HttpResponse, redirect


# Create your views here.


def temp_test(request):
    import datetime
    name_666 = "马具强" # 字符串
    list1 = ['张国成', "张俊林", "陈桂涛"] # 列表
    dict1 = {'name': "张国城", "age": 8, "sex": "female"} # 字典
    date = datetime.datetime.now() # 日期对象
    print(date.year)

    class Person(object): # 自定义类
        def __init__(self, name):
            self.name = name

        def eat(self):
            return "%s - chihuo" % self.name

    person_yuan = Person("yuan")  # 自定义类对象
    person_egon = Person("egon")
    person_alex = Person("alex")

    person_list = [person_yuan, person_egon, person_alex]

    return render(request, "temp_test.html", {"name": name_666,  # 让你区分前后端变量的区别
                                              'list1': list1,
                                              "dict1":None,
                                              "date": date,
                                              "person_list": person_list})
小结:可以从视图函数temp_test可以得出,客户端访问的url,关联的是temp_test,在处理响应的时候,视图函数返回给客户端一个
render()对象,(实际上就是HttpResponse的对象,其实就是请求与相应)
2.render这种HttpResponse对象返回的是,一个网页,从而需要去temprate中拿取模板,还有一点是,把模板需要的参数传给它,格式是:render的第三个参数,以字典的方式放入即可。
# 这个例子对应需要的是temprate中的 temp_test.html文件代码如下:

<h3>模板层</h3>
    <!-- 普通的变量 -->
    <h4>{{ name }}</h4>
    <hr>
    <!-- list -->
    <p>{{ list1 }}</p>
    <!-- 根据索引取值 .的形式 -->
    <p>{{ list1.0 }}</p>
    <hr>
    <!-- 字典 -->
    <p>{{ dict1 }}</p>
    <!-- 字典取值 直接.key 即可 -->
    <p>{{ dict1.name }}</p>
    <p>{{ dict1.sex }}</p>
    <!-- 对象 -->
    <hr>
    <p>{{ date.year }}</p>
    <hr>
    <!-- 对象的属性和方法直接点即可 -->
    <p>{{ person_list.0.name.upper}}</p>
    <p>{{ person_list.0.eat }}</p>
注意:当views中传入对象过来是以列表的形式传过来的,即是先 .数字(取出对应的对象).(属性/方法) # 如果是属性的话,可以直接调用upper转大写(可以使用内置函数)
注意:访问对象中的方法是没有加上括号的。(无参数方法)
 
 
小结:都是传入的参数,即是都是获取变量即可。获取变量规则{{var名字}} 
运行结果:

 2.模板语法之过滤器

猜你喜欢

转载自www.cnblogs.com/longerandergou/p/11133981.html