• django 学习-3 模板变量


    1、vim learn/home.html

    <!DOCTYPE html>
    <html>
    <head>
            <title>{{title}}</title>
    </head>
    <body>
    <hl>hello {{user}}</hl>
    </body>
    </html>
    花括号里加入的就是模板变量

    2、vim /learn/views.py

    def  home(request):
            return render(request,'home.html',{'title':'my page','user':'ssj'})

    同样的改动的也只是花括号里面的东西,就像一个key 对应一个value

    3、还可以这样写

    <!DOCTYPE html>
    <html>
    <head>
            <title>{{title}}</title>
    </head>
    <body>
    <hl>name {{user.name}}</hl>
    <li>age : {{user.age}}</li>
    <li>sex  :{{user.sex}}</li>

    <li>  :{{book_list.0}}</li>
    <li>  :{{book_list.1}}</li>
    <li>  :{{book_list.2}}</li>
    <li>  :{{book_list.3}}</li>
    </body>
    </html>                                                                                                     

    4、     也可以写一个函数然后从中调用

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


    def  home(request):
           user = {'name':'ssj','age':'22','sex':'man'}    传递一个字典
            user = Person('sdj','25','boy')         传递一个对象
            book_list = ['python','java','php','web']    传递一个列表
            return render(request,'home.html',{'title':'my page','user':user,'book_list':book_list})

     可见视图向模板传递的方法很多,普通变量、字典、对象、列表,可以使用对象的属性也可以使用对象的方法。

    而且注意在调用对象方法时有个特点是:没有参数,但要有一个确定的返回值。

    这个还存在一个优先关系:

    如果直接给了一个量话就使用基本变量;

    但如果存在引用的话:首先是字典、其次是对象的属性、再就是对象的方法、列表排最后

    多种方法可以使用,功能很强大也很灵活




                   

  • 相关阅读:
    LuoguP2765 魔术球问题
    LuoguP1402 酒店之王
    luoguP4313 文理分科
    玲珑杯 1138
    codeforces 822 D. My pretty girl Noora(dp+素数筛)
    codeforces 822 C. Hacker, pack your bags!(思维+dp)
    51nod 1376 最长递增子序列的数量(不是dp哦,线段树 +  思维)
    hdu4565 So Easy!(矩阵快速幂)
    atcode E
    atcoder D
  • 原文地址:https://www.cnblogs.com/Icanflyssj/p/5125859.html
Copyright © 2020-2023  润新知