Python Django教程之模板的使用

 更新时间:2022年10月17日 16:59:37   作者:海拥  
模板是 Django MVT 结构的第三个也是最重要的部分。Django中的模板基本上是用HTML,CSS和Javascript编写在.html文件中的。本文将通过实例详细聊聊Django模板的使用,感兴趣的可以

前言

模板是 Django MVT 结构的第三个也是最重要的部分。Django中的模板基本上是用HTML,CSS和Javascript编写在.html文件中的。Django框架有效地处理和生成对最终用户可见的动态HTML网页。Django主要使用后端,因此,为了提供前端并为我们的网站提供布局,我们使用模板。根据我们的需求,有两种方法可以将模板添加到我们的网站。

我们可以使用单个模板目录,该目录将分布在整个项目中。

对于我们项目的每个应用程序,我们可以创建一个不同的模板目录。

对于我们当前的项目,为了简单起见,我们将创建一个将分布在整个项目中的单个模板目录。应用级模板通常用于大型项目,或者我们希望为网页的每个组件提供不同的布局。

配置

Django模板可以在app_name/设置中配置.py,

TEMPLATES = [
	{
		# 要使用的模板后端
		'BACKEND': 'django.template.backends.django.DjangoTemplates',
		# 模板目录
		'DIRS': [],
		'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',
			],
		},
	},
]

使用 Django 模板

如何使用示例项目在 Django 中使用模板的插图。模板不仅显示静态数据,还显示通过上下文字典连接到应用程序的不同数据库的数据。考虑一个名为极客forgeeks的项目,它有一个名为极客的应用程序。

要呈现模板,需要一个视图和一个映射到该视图的URL。让我们首先在极客/视图中创建一个视图.py,

# 从 django 导入 Http 响应
from django.shortcuts import render

# 创建函数
def geeks_view(request):
	# 创建字典以将数据传递到模板
	context ={
		"data":"Gfg is the best",
		"list":[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
	}
	# 使用模板和上下文返回响应
	return render(request, "geeks.html", context)

现在我们需要映射一个URL来呈现这个视图,

from django.urls import path

from .views import geeks_view

urlpatterns = [
	path('', geeks_view),
]

最后在 templates/geeks.html 中创建一个模板,

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<meta http-equiv="X-UA-Compatible" content="ie=edge">
	<title>Homepage</title>
</head>
<body>
	<h1>Welcome to haiyong.site</h1>
	


<p> Data is {{ data }}</p>



	<h4>List is </h4>
	<ul>
	{% for i in list %}
	<li>{{ i }}</li>
	{% endfor %}
</body>
</html>

Django 模板语言

这是Django模板提供的最重要的设施之一。Django模板是使用Django模板语言标记的文本文档或Python字符串。模板引擎可以识别和解释某些构造。主要的是变量和标签。正如我们在上面的示例中用于循环一样,我们将其用作标记。同样,我们可以使用各种其他条件,例如如果,否则,如果-否则,空等。Django模板语言的主要特征是变量,标签,过滤器和评论。

变量

变量从上下文中输出一个值,该值是一个类似于字典的对象,它将键映射到值。我们从视图发送的上下文对象可以使用Django模板的变量在模板中访问。

语法

{{ variable_name }}

示例

变量被 {{ 和 }} 括起来,如下所示:

My first name is {{ first_name }}. My last name is {{ last_name }}. 

在上下文 {'first_name: “hai”、“last_name”: “yong”} 的情况下,此模板将呈现为:

My first name is hai. My last name is yong.

标签

标记在呈现过程中提供任意逻辑。例如,标记可以输出内容,用作控制结构,例如“if”语句或“for”循环,从数据库中获取内容,甚至允许访问其他模板标记。

语法

{% tag_name %}

标记由 {% 和 %} 括起来,如下所示:

{% csrf_token %}

大多数标签接受参数,例如:

{% cycle 'odd' 'even' %}
 常用标签 
Commentcycleextends
iffor loopfor … empty loop
BooleanOperatorsfirstofinclude
loremnowurl

过滤器

Django模板引擎提供用于转换变量和标签参数值的过滤器。我们已经讨论了主要的Django模板标签。标签不能修改变量的值,而过滤器可用于增加变量的值或根据自己的需要修改变量的值。

语法

{{ variable_name | filter_name }}

过滤器可以“链接”。一个筛选器的输出将应用于下一个筛选器。{{ text|scape|换行 }} 是一种常用的习语,用于转义文本内容,然后将换行符转换为

标记。

{{ value | length }}

如果值为  ['a'、'b'、'c'、'd'] ,则输出将为 4

 主要模板过滤器 
addaddslashescapfirst
centercutdate
defaultdictsortdivisibleby
escapefilesizefodivisible byrmatfirst
joinlastlength
line numberslowermake_list
randomsliceslugify
timetimesincetitle
unordered_listupperwordcount

评论

模板忽略 {% 注释 %} 和 {% 结束注释 %} 之间的所有内容。可以在第一个 标记中插入一个可选注释。例如,这在注释掉代码以记录代码被禁用的原因时很有用。

语法

{% comment 'comment_name' %}
{% endcomment %}

例:

{% comment "Optional note" %}
    Commented out text with {{ create_date|date:"c" }}
{% endcomment %}

模板继承

Django模板引擎中最强大,因此最复杂的部分是模板继承。模板继承允许您构建一个基本的“骨架”模板,其中包含站点的所有公共元素,并定义子模板可以覆盖的块。扩展标签用于在 Django 中继承模板。需要一遍又一遍地重复相同的代码。使用扩展,我们可以继承模板和变量。

语法

{% extends 'template_name.html' %} 

示例 :

假定以下目录结构:

dir1/
    template.html
    base2.html
    my/
        base3.html
base1.html

在模板.html中,以下路径将有效:

{% extends "./base2.html" %}
{% extends "../base1.html" %}
{% extends "./my/base3.html" %}   

以上就是Python Django教程之模板的使用的详细内容,更多关于Python Django模板的资料请关注脚本之家其它相关文章!

相关文章

  • django 控制页面跳转的例子

    django 控制页面跳转的例子

    今天小编就为大家分享一篇django 控制页面跳转的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • python多进程和多线程介绍

    python多进程和多线程介绍

    这篇文章主要介绍了python多进程和多线程,进程是分配资源的最小单位,线程是系统调度的最小单位,下文更多相关资料介绍,需要的小伙伴可以参考一下
    2022-04-04
  • Github Copilot的申请以及在Pycharm的配置与使用详解

    Github Copilot的申请以及在Pycharm的配置与使用详解

    GitHub在联合OpenAI推出了一款"GitHub Copilot"工具,可以根据上下文自动写代码,下面这篇文章主要给大家介绍了关于Github Copilot的申请以及在Pycharm的配置与使用的相关资料,文中通过图文以及实例代码介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • Python操作Word批量生成文章的方法

    Python操作Word批量生成文章的方法

    这篇文章主要介绍了Python操作Word批量生成文章的方法,需要的朋友可以参考下
    2015-07-07
  • Python反爬机制-验证码功能的具体实现过程

    Python反爬机制-验证码功能的具体实现过程

    Tesseract-OCR是一个免费、开源的OCR引擎,通过该引擎可以识别图片中的验证码,这篇文章主要介绍了Python反爬机制-验证码的示例代码,需要的朋友可以参考下
    2022-02-02
  • Python操作mysql数据库实现增删查改功能的方法

    Python操作mysql数据库实现增删查改功能的方法

    这篇文章主要介绍了Python操作mysql数据库实现增删查改功能的方法,涉及Python针对mysql数据库的连接、增删改查等相关操作技巧,需要的朋友可以参考下
    2018-01-01
  • keras的get_value运行越来越慢的解决方案

    keras的get_value运行越来越慢的解决方案

    这篇文章主要介绍了keras的get_value运行越来越慢的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • django使用xlwt导出excel文件实例代码

    django使用xlwt导出excel文件实例代码

    这篇文章主要介绍了django使用xlwt导出excel文件实例代码,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • python实现可下载音乐的音乐播放器

    python实现可下载音乐的音乐播放器

    这篇文章主要为大家详细介绍了python实现可下载音乐的音乐播放器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02
  • Python爬虫入门案例之回车桌面壁纸网美女图片采集

    Python爬虫入门案例之回车桌面壁纸网美女图片采集

    读万卷书不如行万里路,学的扎不扎实要通过实战才能看出来,今天小编给大家带来一个python爬虫案例,采集回车桌面网站的美女图片,大家可以在过程中查缺补漏,看看自己掌握程度怎么样
    2021-10-10

最新评论