zoukankan      html  css  js  c++  java
  • (10)模板层-模板语言的标签(字典、列表的循环和切片)

    两种标签

    {{ 变量名 }}   #这种方式是从后端的代码中取值的

    {%   %}   #这种方式是用来做if判断和for循环的

    新建的项目day02

    页面中变量的使用和for循环的使用

    views.py   #app01

    from django.shortcuts import render,HttpResponse

    # Create your views here.

    def index(request):
    # 将字典的值传入页面
    dic = {'name':'peter','age':18}
    li = [1,2,3]
    li2 = [[1,2,3,],[4,5,6],[7,8,9]]
    li3 = [['a','b','c'],['d','e','f']]
    li4 = ['x']
    # 在模板中使用视图中的变量,在括号里直接放入变量,格式为一个字典形式的,为了方便识别,k,v就是变量名
    return render(request,'index.html',{'dic':dic,'li':li,'li2':li2,'li3':li3,'li4':li4})

    index.heml

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Title</title>
    </head>
    <body>
    <h1>我是首页</h1>
    {# 这里直接通过标签语言获得字典的值,在页面中显示 #}
    {# 标签语言的字典取值是用. 后面跟key #}
    <p>{{ dic }}</p>
    <p>{{ dic.name }}</p>
    <p>{{ dic.age }}</p>

    {# 后端传过来的是一个字典了通过for循环来完成字典取值 #}
    {# 字典取值有3中,values、keys、items、如果是items则会将k,v放在一个元祖中,取值方式按照元位置取值,直接 . 位置数即可 #}
    {% for foo in dic.values %}
    <p>{{ foo }}</p>
    {% endfor %}

    {# 后端传过来的是一个列表 #}
    {# 列表切片取值 #}
    <p>{{ li.2 }}</p>

    {% for foo in li %}
    {# 列表的循环取值 #}
    <p>{{ foo }}</p>
    {% endfor %}

    {% for foo in li %}
    {# 标签后可以在连接标签,而且可以直接设定标签的尺寸 #}
    <p>{{ foo }} <img src="https://goss2.vcg.com/creative/vcg/800/version23/VCG41157648094.jpg" alt="当图片连接丢失的提示文字" height="90" width="160"></p>
    {% endfor %}

    {#通过for循环得到索引位置 #}
    {% for foo in li %}
    {#forloop只在for循环内部使用,是一个对象,counter就是用来取索引值的 #}
    <p>这是第{{ forloop.counter }}个位置,值为{{ foo }}</p>
    {% endfor %}

    {#通过for循环从0开始索引第一种写法 #}
    {% for foo in li %}
    <p>这是第{{ forloop.counter | add:-1 }}个位置,值为{{ foo }}</p>
    {% endfor %}

    {#通过for循环从0开始索引的第二种写法 #}
    {% for foo in li %}
    <p>这是第{{ forloop.counter0 }}个位置,值为{{ foo }}</p>
    {% endfor %}

    {#通过for循环倒过来索引 #}
    {% for foo in li %}
    <p>这是第{{ forloop.revcounter }}个位置,值为{{ foo }}</p>
    {% endfor %}

    {#通过for循环倒过来索引最后一位为0 #}
    {% for foo in li %}
    <p>这是第{{ forloop.revcounter0 }}个位置,值为{{ foo }}</p>
    {% endfor %}

    {% for foo in li %}
    <p>{{ forloop }}</p>
    {% endfor %}

    {# 嵌套列表的取值 #}
    {% for foo in li2 %}
    <p>这里传过来一个列表嵌套列表的变量</p>
    {{ foo }}
    <p>for循环嵌套for循环来取得列表嵌套列表内的值</p>
    {% for fooo in foo %}
    {{ fooo }}
    {% endfor %}
    {% endfor %}

    {# parentloop外层对象的使用 #}
    <p></p>
    {% for foo in li3 %}
    {% for i in foo %}
    {#parentloop就是外层的对象,后面counter就是上层循环的第几次循环,这里循环和python的for循环嵌套原理同理 #}
    {{ forloop.parentloop.counter }}
    <p>{{ i }}</p>
    {% endfor %}
    {% endfor %}

    <p></p>
    {#使用forloop.counter获取循环的次数,可以模拟出浏览的几楼#}
    {% for foo in li %}
    <p>{{ forloop.counter }}</p>
    {% endfor %}

    <p></p>
    {#empty的使用 #}
    {% for foo in li4 %}
    {#如果循环的对象是空的,则会打印empty,如果有值则会打印列表的值 #}
    <p>{{ foo }}</p>
    {% empty %}
    我没有值
    {% endfor %}

    </body>
    </html>

    urls.py  #day02下的

    from django.conf.urls import url
    from django.contrib import admin
    from app01 import views
    urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'index/', views.index)
    ]
  • 相关阅读:
    恢复误删的进程在使用的文件【转】
    高效获得Linux函数调用栈/backtrace的方法【转】
    V4L2开发要点【转】
    Linux中Grep常用的15个例子【转】
    1.Linux电源管理-休眠与唤醒【转】
    3.2. 使​​​​​​​用​​​​​​​ CPUFREQ 调​​​​​​​节​​​​​​​器​​​​​​​【转】
    Linux动态调频系统CPUFreq之一:概述【转】
    android Gui系统之SurfaceFlinger(1)---SurfaceFlinger概论【转】
    非常好的一篇对linux信号(signal)的解析 (转载)【转】
    Linux信号-信号集&信号屏蔽字&捕捉信号【转】
  • 原文地址:https://www.cnblogs.com/shizhengquan/p/10504698.html
Copyright © 2011-2022 走看看