Django模板(HTML)

2021-10-09 11:53:18 浏览数 (1)

Django模板

Django中的模板相当于传统MVC模式中的V,而在Django的MVT中,模板是T。在传统的前后端不分离的开发形式中,Django的模板是非常有用的,但是在今天前后端分离的大环境下,Django模板基本没有什么用处。

模板能够从视图返回的HttpResponse中获取数据,然后处理数据,进行显示。

创建模板

如果需要使用Django的模板,那么通常在manage.py的同级目录下创建目录templates文件夹,然后在该文件夹下创建Django APP相对应的文件夹,例如:

代码语言:javascript复制
templates/
└── book
    ├── index.html

book目录下存放着book APP相应的模板文件。

配置模板路径

在项目的settings.py文件中有一个TEMPLATES配置选项,可以在其中配置模板路径。例如:

代码语言:javascript复制
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [BASE_DIR / 'templates'],       # 添加模板文件路径
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

在视图函数中返回模板

代码语言:javascript复制
from django.shortcuts import render


def index(request):
    
    # return HttpResponse("请求成功")
    # render函数有三个参数
    # 第一个参数是请求
    # 第二个参数是模板文件
    # 第三个参数是模板渲染的数据,例如下面的context

    context = {}
    context["name"] = "欢迎您访问本网站"
    return render(request, 'book/index.html', context)       # 返回模板文件

模板文件(HTML文件)

代码语言:javascript复制
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>INDEX</title>
</head>
<body>
<p>{{ name }}</p>   <!--{{}}里面写上视图函数中的context的键即可,这样就能获取键所对应的值-->
</body>
</html>

重新运行项目,然后刷新网页,就会看到如下图所示的内容:


如果需要基于Django开发前后端不分离的项目,那么还是必须得学习jinja2的语法,Django的模板语法和jinja2基本一致。关于模板的使用现在基本不是Django的重点,了解即可。

0 人点赞