Django模板系统是Django框架的一部分,被用于生成HTML页面,并支持动态生成内容。Django模板系统提供了许多内置标签和过滤器,以便于开发者对页面进行更方便的操作和控制。下面我们来了解一下Django模板系统的详细。
显示变量
在Django模板系统中,通过{{}}来显示变量。
如下所示:
<h1>Hello, {{ name }}</h1>
其中,name是要显示的变量。
在条件语句中使用if和else
可以使用if和else来控制页面的显示,通过条件语句来判断应该显示哪些内容。
如下所示:
{% if is_logged_in %}
<h1>Welcome back, {{ username }}</h1>
{% else %}
<h1>Please log in</h1>
{% endif %}
其中,is_logged_in是一个布尔型变量,用来表示当前用户是否已经登录。如果is_logged_in为真,则显示“Welcome back, username”;否则显示“Please log in”。
在循环语句中使用for
可以使用for循环来对一些数据进行迭代输出。
如下所示:
<ul>
{% for item in items %}
<li>{{ item }}</li>
{% endfor %}
</ul>
其中,items是一个列表变量,包含了需要迭代输出的数据。
使用过滤器
过滤器用来对变量进行处理,如增加输出的格式和内容。
如下所示:
<h1>Hello, {{ name|title }}</h1>
其中,title是一个过滤器,用来将变量的每个单词首字母大写。
继承模板
可以使用继承机制,让一个模板继承另一个模板的一些内容。
如下所示:
{% extends "base.html" %}
{% block content %}
<h1>Hello, {{ name }}</h1>
{% endblock %}
其中,{% extends "base.html" %}语句表示这个模板将会继承base.html模板的一些内容。{% block content %}和{% endblock %}语句表示这个模板所定义的块,会替换掉base.html模板中相应的块。
模板中的注释
可以在模板中使用注释来对模板的一些部分进行注释。
如下所示:
{% comment %}
这是一个注释
{% endcomment %}
其中,{% comment %}和{% endcomment %}语句用来定义注释的开始和结束,注释内容不会被显示在网页中。
在Django模板系统中,还有很多其它标签和过滤器,这里不一一赘述,可以在需要的时候查阅文档。
下面给出一个完整的示例:
# views.py
from django.shortcuts import render
def hello(request):
name = "World"
items = ["apple", "banana", "orange"]
return render(request, "hello.html", {"name": name, "items": items})
<!-- hello.html -->
<!DOCTYPE html>
<html>
<head>
<title>Hello</title>
</head>
<body>
{% if name %}
<h1>Hello, {{ name|title }}!</h1>
{% else %}
<h1>Hello, anonymous!</h1>
{% endif %}
<ul>
{% for item in items %}
<li>{{ item }}</li>
{% endfor %}
</ul>
</body>
</html>
在浏览器中输入http://127.0.0.1:8000/hello/,可以看到以下的输出:
Hello, World!
- apple
- banana
- orange
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Django模板系统 - Python技术站