Django模版渲染

  • 渲染单个对象

    {{ context }}
    
  • 渲染多个对象

    {% for i in list %}
    {{ i }}
    {% endfor %}
    
  • 渲染多个对象(字典显示)

    姓名:{{ dict.name }}    年龄:{{ dict.age }}
    
  • 渲染多个对象(for循环)

    {% for item in list %}
        {{ item }},             #注意这有逗号
    {% endfor %}
    
  • 模版上得到视图对应的地址

    • views.py

      def add(request, a, b):
          c = int(a) + int(b)
          return HttpResponse(str(c))
      
    • urls.py

      urlpatterns = patterns('',
          url(r'^add/(\d+)/(\d+)/$', 'app.views.add', name='add'),
      )
      
    • template/index.html

      {% url 'add' 4 5 %}
      
  • ==, !=, >=, <=, >, < 这些比较都可以在模板中使用

    {% if number >= 90 %}
    优秀            #当number大于等于90时显示
    {% elif var >= 75 %}
    良好            #当number大于等于75且小于90时显示
    {% else %}
    不及格            #当number小于80时显示
    {% endif %}
    
  • and, or, not, in, not in 也可以在模板中使用

    {% if num <= 100 and num >= 0 %}
    num在0到100之间
    {% else %}
    数值不在范围之内!
    {% endif %}
    
  • 模板中 获取当前网址,当前用户等

语法 描述
{{ request.user }} 获取当前用户
{{ request.path }} 获取当前网址
{{ request.GET.urlencode }} 获取当前 GET 参数
{{ request.path_info }} 获取当前路由
  • 过滤器

    • 模板过滤器可以在变量被显示前修改它,过滤器使用管道字符,如下所示

      <!-- 变量被过滤器 lower 处理后,文档大写转换文本为小写。-->
      {{ name|lower }}
      
    • 过滤管道可以被 套接 ,既是说,一个过滤器管道的输出又可以作为下一个管道的输入

      <!--将第一个元素并将其转化为大写-->
      {{ my_list|first|upper }}
      
    • 过滤器的参数跟随冒号之后并且总是以双引号包含

      <!--这个将显示变量 bio 的前30个词-->
      {{ bio|truncatewords:"30" }}
      

results matching ""

    No results matching ""