zoukankan      html  css  js  c++  java
  • django基础知识之定义模板:

    定义模板

    • 模板语言包括
      • 变量
      • 标签 { % 代码块 % }
      • 过滤器
      • 注释{# 代码或html #}

    变量

    • 语法:
    {{ variable }}
    
    • 当模版引擎遇到一个变量,将计算这个变量,然后将结果输出
    • 变量名必须由字母、数字、下划线(不能以下划线开头)和点组成
    • 当模版引擎遇到点("."),会按照下列顺序查询:
      1. 字典查询,例如:foo["bar"]
      2. 属性或方法查询,例如:foo.bar
      3. 数字索引查询,例如:foo[bar]
    • 如果变量不存在, 模版系统将插入'' (空字符串)
    • 在模板中调用方法时不能传递参数

    在模板中调用对象的方法

    • 在models.py中定义类HeroInfo
    from django.db import models
    
    class HeroInfo(models.Model):
        ...
        def showName(self):
            return self.hname
    
    • 在views.py中传递HeroInfo对象
    from django.shortcuts import render
    from models import *
    
    def index(request):
        hero = HeroInfo(hname='abc')
        context = {'hero': hero}
        return render(request, 'temtest/detail.html', context)
    
    • 在模板detail.html中调用
    {{hero.showName}}
    

    标签

    • 语法:{ % tag % }
    • 作用
      • 在输出中创建文本
      • 控制循环或逻辑
      • 加载外部信息到模板中供以后的变量使用
    • for标签
    { %for ... in ...%}
    循环逻辑
    {{forloop.counter}}表示当前是第几次循环
    { %empty%}
    给出的列表为或列表不存在时,执行此处
    { %endfor%}
    
    • if标签
    { %if ...%}
    逻辑1
    { %elif ...%}
    逻辑2
    { %else%}
    逻辑3
    { %endif%}
    
    • comment标签
    { % comment % }
    多行注释
    { % endcomment % }
    
    • include:加载模板并以标签内的参数渲染
    { %include "foo/bar.html" % }
    
    • url:反向解析
    { % url 'name' p1 p2 %}
    
    • csrf_token:这个标签用于跨站请求伪造保护
    { % csrf_token %}
    
    • 布尔标签:and、or,and比or的优先级高
    • block、extends:详见“模板继承”
    • autoescape:详见“HTML转义”

    过滤器

    • 语法:{ { 变量|过滤器 }},例如{ { name|lower }},表示将变量name的值变为小写输出
    • 使用管道符号 (|)来应用过滤器
    • 通过使用过滤器来改变变量的计算结果
    • 可以在if标签中使用过滤器结合运算符
    if list1|length > 1
    
    • 过滤器能够被“串联”,构成过滤器链
    name|lower|upper
    
    • 过滤器可以传递参数,参数使用引号包起来
    list|join:", "
    
    • default:如果一个变量没有被提供,或者值为false或空,则使用默认值,否则使用变量的值
    value|default:"什么也没有"
    
    • date:根据给定格式对一个date变量格式化
    value|date:'Y-m-d'
    
    • escape:详见“HTML转义”
    • 点击查看详细的过滤器

    注释

    • 单行注释
    {#...#}
    
    • 注释可以包含任何模版代码,有效的或者无效的都可以
    {# { % if foo % }bar{ % else % } #}
    
    • 使用comment标签注释模版中的多行内容
  • 相关阅读:
    网站如何知道浏览器的用户在使用什么语言?
    安装 Couchbase 服务器
    windows Phone 浏览器窗口的尺寸
    【leetcode】 9. palindrome number
    Android Notification实现推送消息过程中接受到消息端有声音及震动及亮屏提示
    UVA 12487 Midnight Cowboy(LCA+大YY)(好题)
    Jenkins——应用篇——插件使用——Publish over SSH
    Linux经常使用命令(三)
    c++引用总结
    quickcocos2dx framework环境变 fatal error C1083: 无法打开源文件:“.Box2D/Dynamics/b2World.h”: No such file or d
  • 原文地址:https://www.cnblogs.com/huwei934/p/6978659.html
Copyright © 2011-2022 走看看