Django模板

2023-12-13 11:33:47

以下是一个简单的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 %}

还可以像下面这么使用: {% load static %} {% static "images/hi.jpg" as myphoto %}

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 %}

文章来源:https://blog.csdn.net/leshen_88/article/details/134884820
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。