一、Django Template 模板
模板可以动态生成HTML网页,由HTML代码和特殊的模板语法组成。
Django 项目的模板文件是放置在 templates
目录下的,使用 PyCharm 创建的 Django 项目会在 settings 文件中的 TEMPLATES
中自动将模板位置配置好
在视图函数中使用 render() 函数可以渲染页面,需要请求、模板路径以及动态数据作为参数。
from django.shortcuts import render def hallo(request): # 业务代码 # 返回render函数渲染的页面 return render(request, template_path, context) 复制代码
HTML模板中通过{{ 变量名 }}
来渲染从后端传来的动态数据
使用 Pycharm 创建项目django_templates
会自定配置好模板路径
通过命令行创建的 django 项目,则需要手动添加模板路径
通过命令行创建zulu应用
python3 manage.py startapp zulu 复制代码
在 zulu app 内增加 urls.py,配置一个 tango/
路径
from django.urls import path from .views import * urlpatterns = [ path('tango/', Tango.as_view()), ] 复制代码
在项目根路径的 urls.py 中配置 zulu app 的映射
from django.urls import path, include from zulu import urls as zulu urlpatterns = [ path('admin/', admin.site.urls), path('zulu/', include(zulu)) ] 复制代码
在 zulu app 的 views.py 中书写视图类,并绑定模板
from django.shortcuts import render from django.views.generic import View # Create your views here. class Tango(View): def get(self, request): context = {'info': 'This is Tango 5'} return render(request, 'tango.html', context=context) 复制代码
在项目根路径下的 templates 文件夹下增加模板 tango.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"/> <title>Zulu</title> </head> <body> <h1>{{info}}</h1> </body> </html> 复制代码
启动 Django 应用,在浏览器中输入 /zulu/tango/
页面中的动态数据被成功渲染出来。
二、Template 内置标签与静态文件配置
变量与标签
变量使用 {{ }}
双大括号来表示,如果从后端传递到前端的数据 {{ info }},内置的标签类型,使用 {% %}
大括号和百分号的形式来表示。常用的内置标签如下:
标签形式 | 标签说明 |
{% for %} {% endfor %} | 遍历输出列表中的内容 |
{% if %} {% elif %} {% endif %} | 对表达式进行判断 |
{% url name args %} | 引用路由配置名 |
{% load %} {% load static %} | 遍历输出列表中的内容 |
{% static path %} | 读取静态资源 |
{% extends base_template %} | 模板继承 |
{% block data %} {% endblock %} | 重写继承的父模板的内容 |
{% csrf_token %} | 跨域秘钥 |
for 循环标签是模板中比较常用的标签,常常用来遍历输出列表中的数据,for 循环标签还有一些比较常用的变量,比如索引等
变量名 | 变量说明 |
forloop.counter | 从 1 开始计算获取当前索引 |
forloop.counter0 | 从 0 开始计算获取当前索引 |
forloop.revcounter | 索引从最大数递减到 1 |
forloop.revcounter0 | 索引从最大数递减到 0 |
forloop.first | 当前元素是否是第一个 |
forloop.last | 当前元素是否是最后一个 |
empty | 是否为空 |