Django 模板(django模板语法)22

作者 : 慕源网 本文共3721个字,预计阅读时间需要10分钟 发布时间: 2021-11-22 共222人阅读

本文是Django教程的一部分,您可以点击Django教程系列查看所有教程。

Django 模板(django模板语法)22

Django 模板简介

为了理解和操作 Django 应用程序的过程,这些模板起着主要作用,使用 Django 设计的网页中的所有静态项都包含用于构建静态实体的模板。换句话说,可以描述模板负责构建网页的骨架。这些模板使 Django 设置成为面向 MVT 的架构。其中 M 代表所涉及的模型,V 代表设计的视图,T 代表模板。在标准方式中,python 设置中使用的模板是使用 Django 视图呈现的。

使用模板渲染 Django 视图

下面给出了呈现 Django 视图的模板:

1.创建模板文件夹

所有与模板相关的 HTML 代码都可以放在这个文件夹中。必须在主项目文件夹下创建模板文件夹。

Django 模板(django模板语法)22

2.在settings.py文件中标记模板文件夹

settings.py 文件用于将这些模板标记到它们的关联视图。标记过程完成后,它允许放置在文件夹内的所有 HTML 内容都属于此模板部分。

代码:

import os
# Build paths inside the project like this: os.path.join(BASE_DIR,...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
Template_DIR = os.path.join(BASE_DIR,'Templates')
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [Template_DIR,],
'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',
,
},
},
]Template_DIR = os.path.join(BASE_DIR,'Templates')

为了实现 Django 模板的 API 后端,使用了 BACKEND 键中的 python 路径。Django 中内置的一些后端是 django.template.backends.django.DjangoTemplates 和 django.template.backends.jinja2.Jinja2。

  • 模板引擎需要定位模板相关搜索文件的目录放在DIRS目录下。
  • 而 APP_DIRS 有助于提及引擎必须验证已安装应用程序中的模板的位置。对于应用程序内的每个子目录,每个定义的后端都提供一个常规名称。

3. 将 HTML 文件放在模板文件夹中

代码:

<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>Django App1</title>
</head>
<body>
<h1> Hello world from HTML page <h1>
</body>
</html>

语法:

render(request,template_name,context=None,content_type=None,status=None,using=None)
.arguments 描述
request 这用于生成响应。这是一个强制性的论点。
template name 用于此视图的模板的名称。这是一个强制性的论点。
context 上下文是作为字典维护的变量名称和变量值映射。默认情况下,这是一个空字典。因此,如果传递了键,则可以检索和呈现字典中的相应值。这是一个可选参数。如果没有为上下文提供任何内容,则呈现空上下文。
content_type 要使用的 MIME(多用途 Internet 邮件扩展)。默认值为“文本/html”。这是一个可选参数。
status 要使用的响应代码。默认响应代码是 200。
using 该参数用于表示用于加载模板的模板引擎的名称。这是一个可选参数。

例子:

代码:

from django.shortcuts import render
from django.http import  HttpResponse
def index(request_iter):
return  render(request_iter,'design.html')

4. 在 urls.py 文件中标记视图

这是为视图创建 url 的过程。这里提到的 url 将用于访问提到的网页。

  • 从 django.conf.urls 导入 url 导入库。
  • 在 urlpatterns 列表中声明一个 url 条目。

url(url_path,view_to_be_tagged,name_for_this_view)

例子:

代码:

from django.contrib import admin
from django.conf.urls import url
from Django_app1 import views
urlpatterns = [
url(r'^$',views.index,name='index'),
url(r'admin/',admin.site.urls),]

5. 使用 python manage.py runserver 命令重新加载服务器并验证网页

放置在下面的系统消息将在加载 runserver 时打印在项目控制台中。此消息包含服务器启动时间、使用的 Django 版本以及启动服务器的 http 链接的详细信息。

代码:

Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
June 10, 2020 - 11:23:00
Django version 3.0.7, using settings 'educba.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

输出:

Django 模板(django模板语法)22

Django 模板(django模板语法)22

从模板标签渲染的 Django 视图

下面给出了从模板标签呈现的 Django 视图:

1. 模板标签用于将动态生成的内容注入到 Django 视图中。这是模板标签的关键功能之一。他们可以灵活地将动态内容注入文件。

模板标签过滤器可以使用下面列出的选项:

模板过滤器中的所有选项
add addslashes capfirst
center cut date
default dictsort divisibleby
escape filesizeformat first
join last length
linenumbers lower make_list
random slice slugify
time timesince title
unordered_list upper wordcount

2. 在本例中,我们在模板中添加了 if 标签和 filter 标签。

  • 在 HTML 文件中添加模板标记。

代码:

<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>Django App1</title>
</head>
<body>
<h1> <u> All valid Technical tutorials </u> </h1>
{% if Entity_type == 'tutorial' %}
{{ Entity_name }}
{% else %}
{{ Error_Message }}
{% endif %}
<h2> <u> Django filters Explained <u> </h2>
<p> Student Count: {{ Entity_students_count | add:"230"}}  <p>
<p> Entity Type: {{ Entity_type | capfirst}}  <p>
</body>
</html></html></html>

例子:

from django.shortcuts import render
from django.http import  HttpResponse
def index(request_iter):
dict_Var =  {
"Entity_name": "Educba",
"Entity_type": "tutorial",
"Entity_students_count": 345,
"Error_Message": "No Valid Entity found"
}
return  render(request_iter,'design.html',context=dict_Var)

3. 使用 python manage.py runserver 命令重新加载服务器并验证网页。

输出:

Django 模板(django模板语法)22

Django 模板(django模板语法)22

结论

模板的使用是 Django 在 Web 开发框架中最大的功能之一。这些模板允许 Django 设置在前端和中间流之间灵活地传输动态内容。


慕源网 » Django 模板(django模板语法)22

常见问题FAQ

程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!

发表评论

开通VIP 享更多特权,建议使用QQ登录