Django 模板(django模板语法)22
本文是Django教程的一部分,您可以点击Django教程系列查看所有教程。
Django 模板简介
为了理解和操作 Django 应用程序的过程,这些模板起着主要作用,使用 Django 设计的网页中的所有静态项都包含用于构建静态实体的模板。换句话说,可以描述模板负责构建网页的骨架。这些模板使 Django 设置成为面向 MVT 的架构。其中 M 代表所涉及的模型,V 代表设计的视图,T 代表模板。在标准方式中,python 设置中使用的模板是使用 Django 视图呈现的。
使用模板渲染 Django 视图
下面给出了呈现 Django 视图的模板:
1.创建模板文件夹
所有与模板相关的 HTML 代码都可以放在这个文件夹中。必须在主项目文件夹下创建模板文件夹。
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 视图:
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 在 Web 开发框架中最大的功能之一。这些模板允许 Django 设置在前端和中间流之间灵活地传输动态内容。
常见问题FAQ
- 程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
- 请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!