我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python模板的使用详细讲解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python模板的使用详细讲解

一 模板语法传值

方式一:

# urls.py
path('template', views.template)
# views.py
def template(request):
    name = "jasper"
    age = "18"
    return render(request, 'template.html', {"name": name, "age": age})

 <p>姓名:{{ name }}  年龄:{{ age }}</p>

方式二:关键字locals

def template(request):
    name = "jasper"
    age = "18"
    return render(request, 'template.html', locals())

传值范围:

  • 基本数据类型直接传递使用。
  • 函数名的传递会自动加括号执行并展示函数返回值(如果函数需要参数,则不会执行,也不会展示),模板语法不支持有参函数。
  • 类名的传递也会自动加括号产生对象。
  • 对象的传递则直接引用。

二 过滤器

add

{{ value|add:"2" }}

如果 value 是 4,那么输出将是 6。

这个过滤器将首先尝试将两个值强制转为整数。如果失败了,它将尝试将两个值加在一起。这对某些数据类型(字符串、列表等)有效,而对其他类型则失败。如果失败,结果将是一个空字符串。

capfirst

{{ value|capfirst }}

将值的第一个字符大写。如果第一个字符不是字母,这个过滤器就没有效果。

如果 value 是 “django”,则输出为 “Django”。

center

在给定宽度的字段中使数值居中。

"{{ value|center:"15" }}"

如果 value 是 “Django”,输出将是 " Django "。

cut

从给定的字符串中删除参数的所有值。

{{ value|cut:" " }}

如果 value 是 “String with spaces”,输出将是 “Stringwithspaces”。

date

根据给定的格式设置日期。

例子:

{{ value|date:"D d M Y" }}

如果 value 是一个 datetime 对象(例如,datetime.datetime.datetime.now() 的结果),输出将是字符串 ‘Wed 09 Jan 2008’。

传递的格式可以是预定义的 DATE_FORMAT、DATETIME_FORMAT、SHORT_DATE_FORMAT 或 SHORT_DATETIME_FORMAT, 或者是使用上表中显示的格式指定器的自定义格式。请注意,预定义的格式可能会根据当前的 locale 而有所不同。

假设 USE_L10N 为 True 和 LANGUAGE_CODE 为例如 “es”,那么对于:

{{ value|date:"SHORT_DATE_FORMAT" }}

输出将是字符串 “09/01/2008” (Django 自带的 “SHORT_DATE_FORMAT” 格式指定符是 “d/m/Y”)。

当不使用格式字符串时,使用 DATE_FORMAT 格式指定器。假设设置与前一个例子相同:

{{ value|date }}

输出 9 de Enero de 2008 (DATE_FORMAT’ 格式指定符为 r’j\d\e F\d\e Y’)。“d” 和 “e” 都是反斜杠,因为否则每一个都是一个格式字符串,分别显示日期和时区名称。

你可以将 date 与 time 过滤器结合起来,以呈现一个 datetime 值的完整表示。例如:

{{ value|date:"D d M Y" }} {{ value|time:"H:i" }}

default

如果值为 False,则使用给定的默认值。否则,使用该值。 例子:

{{ value|default:"nothing" }}

如果 value 是 “” (空字符串),输出将是 nothing。

更多内置过滤器请查看官方文档:https://docs.djangoproject.com/zh-hans/4.1/ref/templates/builtins/#ref-templates-builtins-filters

三 标签

参考官方文档:https://docs.djangoproject.com/zh-hans/4.1/ref/templates/builtins/#ref-templates-builtins-filters

四 自定义模板标签和过滤器

Django 模板语言包含了很多 内置 tags 和 filters,设计目的是满足应用需要占位逻辑需求。极少情况下,你可能发现需要的功能未被核心模板集覆盖。你能通过 Python 代码自定义 tags 和 filters 扩展集成模板引擎,通过 {% load %} 标签使其可用。

该应用应包含一个 templatetags 目录,与 models.py, views.py 等同级。若该目录不存在,创建它——不要忘了用 init.py 文件确保目录被视作一个 Python 包。

自定义的 tags 和 filters 会保存在模块名为 templatetags 的目录内。模块文件的名字即稍候你用来加载 tags 的名字,所以小心不要采用一个可能与其它应用自定义的 tags 和 filters 冲突的名字。

为了使 {% load %} 标签生效,包含自定义标签的应用必须包含在 INSTALLED_APPS 中。这是个安全特性:它允许你在一个主机上持有多个模板库,而不是让每个 Django 安装都能访问所有的库。

我们并未限制放入 templatetags 包中的模块数量。只需牢记 {% load %} 语句会加载名字指定 Python 模块的 tags/filters,而不是应用。

要成为一个可用的 tag 库,模块必须包含一个名为 register 的模块级变量,它是一个 template.Library 实例。所有的 tags 和 filters 均在其中注册。所以,在模块的开始,输入以下内容:

from django import template
register = template.Library()

4.1 自定义过滤器

@register.filter(name='myfilter')
def my_add(a, b):
    return a + b

4.2 自定义标签函数

@register.simple_tag(name='mt')
def func(a, b, c, d):
    return a + b + c + d

4.3 自定义inclusion_tag

@register.inclusion_tag(filename='it.html')
def index(n):
    html = []
    for i in range(n):
        html.append('第%s页'%i)
    return locals()

参考官方文档:https://docs.djangoproject.com/zh-hans/4.1/howto/custom-template-tags/

五 模板的继承

# 在html页面打上标记
{% block 名字 %}
    html标签
{% endblock %}

# 扩展html界面
{% extends 'html文件' %}

{% block 名字 %}
    html标签
{% endblock %}

# 一般情况下模板中至少应该有三个区域
css、js、content

子板中还可以使用母板的内容 {{ block.super }}

六 模板的导入

将html页面的某个部分当做模块的形式导入使用

{% include 'menu.html' %}

到此这篇关于Python模板的使用详细讲解的文章就介绍到这了,更多相关Python模板内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python模板的使用详细讲解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

C++类模板与函数模板基础详细讲解

C++语言的模板技术包括函数模板和类模板,模板技术是一种代码重用技术,函数和类是C++语言中两种主要的重用代码形式,这篇文章主要介绍了C++函数模板和类模板,需要的朋友可以参考下
2022-11-13

Python hashlib模块详细讲解使用方法

hashlib 是一个提供了一些流行的hash算法的 Python 标准库.其中所包括的算法有 md5, sha1, sha224, sha256, sha384, sha512. 另外,模块中所定义的 new(name, string=”) 方法可通过指定系统所支持的hash算法来构造相应的hash对象
2022-11-13

python random模块的详细讲解

1.random()方法random.random()方法返回的是[0,1)之间的浮点数>>> import random c = random.random()print c 0.3110676697832. randrange()方法语
2023-01-31

C++模板的特化超详细精讲

最近我学习了C++中的模板相关知识,模板是泛型编程的基础,十分重要。所以特意整理出来一篇文章供我们一起复习和学习
2022-11-13

Express使用html模板的详细代码

express默认使用jade模板,可以配置让其支持使用ejs或html模板。 1. 安装ejs 在项目根目录安装ejs.npm install ejs2、引入ejsvar ejs = require('ejs'); //我是新引入的ejs
2022-06-04

C++BoostTokenizer使用详细讲解

Boost是为C++语言标准库提供扩展的一些C++程序库的总称。Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一,是为C++语言标准库提供扩展的一些C++程序库的总称
2022-11-16

Python字典的详细讲解

本篇内容介绍了“Python字典的详细讲解”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、字典概述1. 字典的格式Python字典是一种可
2023-06-16

Vuex与Vuerouter的使用详细讲解

在看这篇文章的几点要求:需要你先知道Vuex与Vue-Router是个什么东西,用来解决什么问题,以及它的基本使用。如果你还不懂的话,建议上官网了解下Vuex与Vue-Router的基本使用后再回来看这篇文章
2022-11-13

React组件的使用详细讲解

React组件分为函数组件与class组件;函数组件是无状态组件,class称为类组件;函数组件只有props,没有自己的私有数据和生命周期函数;class组件有自己私有数据(this.state)和生命周期函数
2022-11-16

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录