Django模板
以下是一个简单的Django模板示例:
<!DOCTYPE html>
<html>
  <head>
    <title>{{ title }}</title>
  </head>
  <body>
    <h1>{{ heading }}</h1>
    <p>{{ content }}</p>
  </body>
</html>
一、模板的基本语法
1、变量{{和}}
 字典的查询、属性、列表索引查找都是通过远点符号.来实现的;
 变量名中不能有空格或者标点符号。
2、标签{%和%}
 eg:{% csrf_token %} # csrf令牌标签
 大部分标签都接受参数:{% cycle ‘odd’ ‘even’ %} # 循环使用’odd’和’even’
 部分标签需要使用起始和闭合标签,典型代表为for循环标签和if判断标签:
 {% if user.is_authenticated %}Hello, {{ user.username }}.{% endif %},或者里面填endfor
 block继承标签,extends复写模板标签,都需要end结尾
 {% block content %} 只是给标签起名字,增加可读性;不能在一个模板下定义多个名字相同的block标签
 static标签用于链接保存在STATIC_ROOT中的静态文件。例如:
 {% load static %}
 <img src=“{% static “images/hi.jpg” %}” alt=“Hi!” />
 还可以使用变量:
 {% load static %}
3、过滤器
 {{ my_date|date:“Y-m-d” }} # 按指定的格式"Y-m-d",显示日期
 {{ value|filesizeformat }}
4、注释
 {# this won’t be rendered #} # 单行注释
 {% comment %}{% endcomment %}标签提供多行注释功能。
5、模板继承
 {% extends “base.html” %}
 block是在子模版中可能会被覆盖掉的位置,父类模板可以比子类模板多。
6、方法调用
 class Task(models.Model):
 def foo(self):
 return “bar”
 可以用{{ task.foo }}调用
 多对多的时候,可以间接的调用:
 {% for course in student.course_set.all %}
 {{ course.name }}
 {% endfor %}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!