Python Django教程之模板的使用

目录
  • 前言
  • 配置
  • 使用 Django 模板
  • 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' %}
  常用标签  
Comment cycle extends
if for loop for … empty loop
BooleanOperators firstof include
lorem now url

过滤器

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

语法

{{ variable_name | filter_name }}

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

标记。

{{ value | length }}

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

  主要模板过滤器  
add addslashes capfirst
center cut date
default dictsort divisibleby
escape filesizefodivisible byrmat first
join last length
line numbers lower make_list
random slice slugify
time timesince title
unordered_list upper wordcount

评论

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

语法

{% 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模板的资料请关注我们其它相关文章!

(0)

相关推荐

  • Django模板语言 Tags使用详解

    Tags # 普通for循环 <ul> {% for user in user_list %} <li>{{ user.name }}</li> {% endfor %} </ul> for循环可用的一些参数: Variable Description forloop.counter 当前循环的索引值(从1开始) forloop.counter0 当前循环的索引值(从0开始) forloop.revcounter 当前循环的倒序索引值(从1开始) forlo

  • python Django模板的使用方法

    模板是一个文本,用于分离文档的表现形式和内容. 模板定义了占位符以及各种用于规范文档该如何显示的各部分基本逻辑(模板标签). 模板通常用于产生HTML,但是Django的模板也能产生任何基于文本格式的文档. 来一个项目说明 1.建立MyDjangoSite项目具体不多说,参考前面. 2.在MyDjangoSite(包含四个文件的)文件夹目录下新建templates文件夹存放模版. 3.在刚建立的模版下建模版文件user_info.html <html> <meta http-equiv=

  • 简单了解Django模板的使用

    模板标签include的使用 {%include"police/module/carousel.html"withimgs=imgsdiv_id='#carousel-index'%} 此处carousel.html为需要利用的模板文件,这里主要是用来展示轮播图,其中imgs和div_id为需要传入该模板的变量. 自定义tag的使用 添加目录和文件 在djangoapp目录中添加一个templatetagsPython包(Packages),注意是包,非目录.如下图所示: 这里我在应用

  • Django框架模板的使用方法示例

    本文实例讲述了Django框架模板的使用方法.分享给大家供大家参考,具体如下: 创建模板文件夹 在项目下床架一个模板文件夹 在templates下面为了区分是哪一个应用的模板再建一个与应用同名的文件夹. 在setting.py的TEMLATES里配置模板文件的路径 在视图函数里return reder def index(request):#视图函数必须有一个参数 #进行处理,和M和T进行交互... # return HttpResponse('good') # #使用模板文件 # #1.加载模

  • django框架模板语言使用方法详解

    本文实例讲述了django框架模板语言使用方法.分享给大家供大家参考,具体如下: 模板功能 作用:生成html界面内容,模版致力于界面如何显示,而不是程序逻辑.模板不仅仅是一个html文件,还包括了页面中的模板语言. 静态内容:css,js,html. 动态内容:通过模板语言,动态生成一些网页内容 模板使用: 在视图函数中,使用模板产生html内容返回给客户端 方式一: 加载模板文件(loader.get_template) 模板渲染,产生标准的html页面内容(render) 通过HttpRe

  • Python Django教程之模板的使用

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

  • python+django加载静态网页模板解析

    接着前面Django入门使用示例 今天我们来看看Django是如何加载静态html的? 我们首先来看一看什么是静态HTML,什么是动态的HTML?二者有什么区别? 静态HTML指的是使用单纯的HTML或者结合CSS制作的包括图片.文字等的只供用户浏览但不包含任何脚本.不含有任何交互功能的网页! 动态的HTML指的是网页不仅提供给用户浏览,网页本身还有交互功能,存在着在脚本如JAVASCRIPT,并利用某种服务器端语言如PHP等实现如用户注册,用户登录,上传文件,下载文件等功能 接下来,了解下加载

  • Python Django的安装配置教程图文详解

    Django 教程 Python下有许多款不同的 Web 框架.Django是重量级选手中最有代表性的一位.许多成功的网站和APP都基于Django. Django是一个开放源代码的Web应用框架,由Python写成. Django遵守BSD版权,初次发布于2005年7月, 并于2008年9月发布了第一个正式版本1.0 . Django采用了MVC的软件设计模式,即模型M,视图V和控制器C. 学习Django前,我们要确定电脑上是否已经安装了Python,目前Python有两个版本,不过这两个版

  • Python Django框架模板渲染功能示例

    本文实例讲述了Python Django框架模板渲染功能.分享给大家供大家参考,具体如下: 项目名/settings.py(项目配置,配置模板文件的路径): import os # 项目目录的绝对路径 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates',

  • Python Django模板之模板过滤器与自定义模板过滤器示例

    本文实例讲述了Python Django模板之模板过滤器与自定义模板过滤器.分享给大家供大家参考,具体如下: 模板过滤器 过滤器用于对模板变量进行操作. date:改变日期的显示格式. length:求长度.字符串,列表. default:设置模板变量的默认值. 格式:模板变量|过滤器:参数 自定义过滤器. 自定义的过滤器函数,至少有一个参数,最多两个 例如: {{ book.btitle|length }} # 返回字符串或列表的长度 {{ book.bpub_date|date:'Y年-m月

  • Python Django框架介绍之模板标签及模板的继承

    一.标签语法 由%}和 {% 来定义的,例如:{%tag%} {%endtag%},完整的标签有开始就有结束,如条件语句,有条件判断的开始,也对应有条件的结束. 二.常见标签 if条件判断 if/elif/else:可以使用and/or/in/not/==/!=/<=/>=,来进行判断.ifequal/ifnotequal for循环 for ... in ...:和python中的用法一样. forloop.counter:当前迭代的次数,下标从1开始.1,2,3.... forloop.c

  • python Django框架快速入门教程(后台管理)

    Python下有许多款不同的 Web 框架.Django是重量级选手中最有代表性的一位.许多成功的网站和APP都基于Django. Django 是一个开放源代码的 Web 应用框架,由 Python 写成. Django 遵守 BSD 版权,初次发布于 2005 年 7 月, 并于 2008 年 9 月发布了第一个正式版本 1.0 . Django 采用了 MVT 的软件设计模式,即模型(Model),视图(View)和模板(Template). 参考官方文档:Django官方文档https:

  • django使用html模板减少代码代码解析

    看下面两个页面: 一个显示文章列表,一个显示文章详细信息,其中的部分内容相同,有可以重用的部分. 所有就此例可以设置三个html文件:重用部分,目录部分,文章部分. 重用部分: base.html <!DOCTYPE html> <!DOCTYPE html> <html lang="zh-CN"> {% load staticfiles %} <head> <meta charset="utf-8"> &

  • Python+Django搭建自己的blog网站

    一.前言 1.1.环境 python版本:3.6 Django版本:1.11.6 1.2.预览效果 最终搭建的blog的样子,基本上满足需求了.框架搭好了,至于CSS,可以根据自己喜好随意搭配. 二.建立博客应用 2.1.建立项目和应用 创建工程blogproject python manage.py startproject blogproject 创建blog应用 python manage.py startpapp blog 打开 blogproject\ 目录下的 settings.py

  • django教程如何自学

    Django教程是讲解Django框架学习方法和步骤的,可以理解为教材,是供初学者或者程序员学习和提升技术的. 下面介绍下Django教程所包含的内容以及学Django所需要的必备技能. 学Django需要什么基础? 1. Django是 python 语言写的一个Web框架包,所以你得知道一些 Python 基础知识. 2. 其次你最好有一些做网站的经验,懂一些网页 HTML, CSS, JavaScript 的知识不过啊,没有也没关系,其实Django其实很简单的. 以下的建议可能在Djan

随机推荐