Django自学笔记 3-3 模板常用语法

从零开始的Django框架入门到实战教程(内含实战实例) - 01 创建项目与app、加入静态文件、模板语法介绍(学习笔记)   在这部分,我将从Django的安装讲起,从创建项目到制作一个简单的页面(跑通流程),再到加入网页,介绍Django的模板语法。最后利用所学完成一个小的网页展示。   1. 安装Django 2. 创建项目(startproject) 2.1 创建项目 2.2 介绍项目文件 2.3 APP(startapp) 3. 走通流程(urls, views, runserver) 3.1 第一个页面 3.2 多个页面 4. 网页 4.1 加入网页(templates, render) 4.2加入图片、css、js 阅读详情

————总目录——前言——框架版本————

======================= 大爽歌作,made by big shuang =======================

三、模板常用语法

本文主要参考:https://docs.djangoproject.com/en/2.2/ref/templates/builtins/

模板语法的四种结构中,Comments(注释)结构都是固定的,没有什么其他的变化和方法。
所以这里介绍下其他三种结构的各种用法。

1 Variables(变量)

该结构基础用法为

{{ variable}}

python为面向对象语言,所以程序里也会有各种对象,该结构中获取变量对象的某种属性的值和python的写法一样

{{ object.attritube }}

这里有一个需要特别介绍的,就是该结构中如何使用变量对象的某种方法:
该结构中只能使用变量对象无需传参的方法。
该结构中调用变量对象的方法时,不要在方法名后加括号()
举例如下

class A:
	def valid_method(self):
		return "It's a valild method"
	
	def invalid_method(self, param):
		return "It's an invalild method because it has a redundant param"

上面是一个名为A的类,其第一个方法是可以在该结构中调用的
调用方法如下,其中a是A的一个实例

{{ a.valid_method}}

该调用语句会再html中生成的对应文本为"It's a valild method"

第二个方法则是不可以在该结构中调用的,因为它包含一个参数param,该语法结构中无法调入需要传参的方法。
类方法中self是类对象本身,所以不算做参数。

拓展介绍
上面我们展示了点这个操作符: .(dot operator)在模板中可以获取对象属性或者调用对象的方法。
不过具体的实际情况比这要复杂一些。
从技术上讲,当模板系统遇到一个点时,它会先后尝试用以下方式来理解.这个点操作符并执行相应的查找:

  • 字典的键查找
  • 属性或者方法名查找
  • (列表之类的)数字索引查找

比如这样的代码:

{{ a.b }}

具体执行时,会

  • 先看a是不是字典类似的对象,有没有叫做b的键(key),有则返回对应的值(value)
  • 然后看a这个对象有没有b这个属性(有则返回属性值),或者方法(有则调用方法,返回执行方法后的返回值)
  • 最后看a是不是类似于列表的对象,有没有数字索引为b的,有则返回对应的元素值

同时由于有三种查找方式,有可能会导致冲突,第三种一般不会和其他两种冲突。
第一种和第二种有可能冲突,即字典键和字典对象本身具有的属性名或者方法名重名时,会导致后者无法获取到,所以要避免这种重名。
详细官方文档: ref/templates/language/#variables

2 常用Tags

url: 调整url写法

返回与给定视图和可选参数匹配的绝对路径引用(不带域名的URL)。

<a href="/register/">register</a>

统一改为通过urls.py里面指定的urlpattern的name来访问

<a href="{% url 'register' %}">register</a>

好处:如果有url修改的话,只需要改一次urlpattern,不用去把所有有url的地方都修改一遍
更多信息:https://docs.djangoproject.com/en/2.2/ref/templates/builtins/#url

for: 循环

循环遍历数组中的每个项,使该项在上下文变量中可用。
写法: (一定要用endfor结尾)

{% for obj in obj_list%}
	...
{% endfor %}

示例

<ul>
{% for athlete in athlete_list %}
    <li>{{ athlete.name }}</li>
{% endfor %}
</ul>
if: 条件判断

{% if %}标签计算一个变量,如果该变量为“true”(即存在,不为空,不为false boolean值),则输出块的内容:
写法: (一定要用endif结尾)

{% if boolean_a %}
...
{% elif boolean_b % }
...
{% else %}
...
{% endif %}

示例

{% if athlete_list %}
    Number of athletes: {{ athlete_list|length }}
{% elif athlete_in_locker_room_list %}
    Athletes should be out of the locker room soon!
{% else %}
    No athletes.
{% endif %}
其他常用Tags及用法将在后续相关章节中介绍

模板继承: block、endblock、extends
模板加载静态文件(css或图片): load static

3 常用Filters

TODO: Filters感觉新手基本用不到(或者不习惯去用),未来本小部分可能会放在一个拓展小节中去讲。

【Django自学】Django入门:如何使用django开发一个web项目(非常详细) 本文详细介绍django从安装到开启web开发,适合入门小白,以及创建web模板时的参考 阅读详情

相关推荐

【Python自学笔记】Django框架的自学笔记(内含Django常用命令/常用方法/防坑手册)

文章目录Django自学笔记MVT框架Django项目基础命令创建项目相关命令模型类相关命令通过模型类操作数据表的命令后台管理本地化创建管理员模型类(Models)注册模型类自定义管理界面视图相关命令(Views)视图函数urls配置模板(Templates)templates 设置使用模板文件给模板文件传递数据数据库配置 Django自学笔记 MVT框架 Django的MVT框架模式(MV...

XiaoqiangClub的博客 288

Django框架基本语法(一)

使用 Django,只要很少的代码,Python 的程序开发人员就可以轻松地完成一个正式网站所需要的大部分内容,并进一步开发出全功能的 Web 服务 Django 本身基于 MVC 模型,即 Model(模型)+ View(视图)+ Controller(控制器)设计模式,MVC 模式使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。低耦合开发快捷部署方便可重用性高维护成本低…MVC 以一种插件式的、松耦合的方式连接在一起。...

一个专注于机器学习基础与实战的技术博客,内容涵盖算法推导、模型实现、数学原理与代码实践。用通俗的语言解析复杂概念,记录学习过程中的思考与总结,适合机器学习爱好者和从业者参考。 1378

c#笔记之mes上传Http协议版

HTTP(超文本传输协议) 是一种典型的协议。

qq_61441787的博客 343

PHP:ThinkPHP5.0视图View模板语法

1、模板路径 控制器地址 app/index/controller/Index 传参示例 说明 获取模板路径 view() 默认模板的地址 app/index/view/index/index.html view(‘upload’) 修改文件 app/index/view/index/upload.html view(‘public/upload’) 修改目录 app/i...

彭世瑜的博客 5041

相机光学(三十八)——VCM(Voice Coil Motor)音圈马达

VCM(Voice Coil Motor)音圈马达全称Voice Coil Montor,电子学里面的音圈电机,是马达的一种。因为原理和扬声器类似,所以叫音圈电机,具有高频响、高精度的特点。其主要原理是在一个永久磁场内,通过改变马达内线圈的直流电流大小,来控制弹簧片的拉伸位置,从而带动上下运动。手机摄像头广泛的使用VCM实现自动对焦功能,通过VCM可以调节镜头的位置,呈现清晰的图像。弹片式结构滚珠式结构摩擦式结构Open loop开马达Close loop闭环马达。

图像学习之旅 7222

uniapp [安卓苹果App端] - 详细实现下载文件保存到用户手机本地,指定文件存储位置路径及文件夹名称下载并保存,Uniapp app端将文件下载保存并储存到指定目录(手机系统存储空间权限检测)

uni-app,安卓Android,苹果ios,安卓app端,苹果App端,uniapp苹果安卓app,app端下载文件,移动端文件下载,并保存到手机本地存储空间,uniapp下载文件保存到手机本地,iOS下载文件怎么保存,系统读写存储空间权限,下载文件到本地详细流程及源代码,保存自定义目录,uniapp,实现下载文件并保存到本地,文件后缀,如何指定手机的存放目录路径url,点击下载文档到手机中并提示存储位置,如何在uniapp中实现文件下载功能,uniApp文件下载,怎么指定文件保存目录,下载报错,没反应

🏆 前端领域优质创作者 1万+

Pytorch 02: Variable的了解

从代码角度学习理解Pytorch学习框架01: Variable的了解   # coding=utf-8 import torch from torch.autograd import Variable """pytorch中Variable了解""" """ Variable是Pytorch中autograd自动微分模块的核心。 它封装了Tensor,支持几乎所有的tensor操作。 主...

一遍看不懂,我就再看一遍 1702

单线激光雷达的工作原理

单线激光雷达通过单一激光束的水平扫描和时间 / 相位测量,实现二维环境的距离感知,是低成本二维导航的核心传感器。尽管其无法直接提供三维信息,但其可靠性和经济性使其在消费级和工业级场景中广泛应用。随着技术发展,部分单线雷达通过振动镜或 MEMS 微振镜实现微小角度偏转,可近似模拟多线扫描效果,进一步拓展了应用边界。

谢谢大家的关注和点赞!这里只有纯纯的知识干货,没有一句废话。希望能实实在在帮到大家~要是觉得有用,别忘了给我点支持哟,你 1859

Django必备知识点(图文详解)

http://127.0.0.1:8000/login/ 成功​http://127.0.0.1:8000/login django,重定向301http://127.0.0.1:8000/login/ 成功http://127.0.0.1:8000/login 成功​http://127.0.0.1:8000/login/ 失败http://127.0.0.1:8000/login/ 成功​http://127.0.0.1:8000/login 失败。

Python 2043

UGUI合批杀手:Mask/RectMask2D为何必断合批?

颜色缓冲负责记录像素颜色;模板缓冲负责记录“这个像素的模板值”(一个小整数);渲染时,你可以设定:只有模板值为 X 的地方才允许画;或者往某些区域写特定的模板值。类似于:先拿一支隐形笔在纸上画出一块区域,给它记一个编号“1”,后面的涂色动作只允许涂在“编号为1”的区域上。合批的前提:渲染状态不变,连续元素能一口气画完。材质、贴图、混合模式、Stencil、裁剪区域……都得一致。Mask / RectMask2D 的本质:在渲染状态上加规则——“只在某个区域内允许写像素”。

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 119

在 Visual Studio Code 中开发 SAP Fiori 应用并部署到 Cloud Foundry 的完整实战指南

摘要:本文介绍如何以ABAP RAP服务为后端,通过VS Code和SAP Fiori工具将Fiori应用一键部署到SAP BTP Cloud Foundry环境。主要内容包括:1) 开发环境配置(VS Code+Fiori工具);2) 架构流程说明(MTA打包、Approuter路由);3) 权限准备(业务Catalog分配);4) 创建带Approuter的MTA项目;5) 连接ABAP OData服务并生成Fiori应用。文中还针对常见问题(如服务不可见、部署失败)提供了解决方案参考。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 367

Laravel学习笔记汇总——视图模板

## Laravel学习笔记汇总——视图模板 // 视图模板传值 Route::get('/', function () { return view('greeting', ['name' => 'James']); //或: //use Illuminate\Support\Facades\View; //return View::make('greeting', ['name' => 'James']); }); <!-- resources/vie...

codingclassonline 518

一次点击跑通:用 Postman 自动获取并携带 CSRF token,测试 SAP OData 写操作

SAP OData 写操作自动化测试方案 针对 SAP Gateway OData 服务写操作中常见的 CSRF token 验证问题,本文提出了一套基于 Postman 的自动化解决方案: 问题分析:解释了 CSRF token 的验证机制及其必要性,说明手工测试效率低下的原因 解决方案: 使用 Postman 环境变量存储 token 通过脚本自动获取并传递 token 利用 Collection Runner 实现一键执行 实施步骤: 创建环境变量存储 token 第一个请求获取 token 并存入变

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 307

Django自学笔记 3-2 模板语法结构概述

————总目录——前言——框架版本———— ======================= 大爽歌作,made by big shuang ======================= 二、模板(Template)语法介绍 参考:https://docs.djangoproject.com/en/2.2/topics/templates/#the-django-template-language 0 总介绍 官方文档介绍: A Django template is simply a text d.

大爽老师的博客 689

【光伏风电功率预测】偏差考核每月少几十万:STL-VMD + Informer-LSTM 在某基地的落地案例

摘要:某风光一体化基地通过STL-VMD二次分解与Informer-LSTM并行残差模型,在不推翻现有预测系统的情况下,将风光功率预测的综合nRMSE降低了1.2-1.5个百分点。该方案通过分解预测误差为多个子序列,并采用不同模型处理各频段特征,显著改善了关键时段的预测精度。实施后,风电nRMSE从9.0%降至7.6%,光伏从10.2%降至8.8%,每月减少偏差考核费用30-50万元。项目经验表明,数据质量优化、参数调优及与业务目标对齐是关键成功因素,该技术路线具有可复制性,为风光基地预测精度提升提供了有效

专注AI大模型,软件混淆,授权 264

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Django自学笔记 3-4 模板继承

————总目录——前言——框架版本———— ======================= 大爽歌作,made by big shuang ======================= 四、模板继承 在介绍具体的技术之前,先介绍在什么样的场景中,需要使用这样的技术,我觉得这对于新手理解起来很重要。 一般来说,要渲染一个页面我们就需要新建一个对应的模板,然而一个系统中,多个页面常常会有很多功能相似的内容区域,比如都有头部栏、侧边栏、底部信息栏等等,这样的内容区域是多个页面共有的,如果我们不思考采用新的.

大爽老师的博客 409

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Django自学笔记 3-1 模板(Template)基础

————总目录——前言——框架版本———— ======================= 大爽歌作,made by big shuang ======================= 一、模板(Template)基础 1 介绍 Todo 2 代码示例 nav.html: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title> .

大爽老师的博客 634

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

怎么自学django

这篇文章主要为大家展示了怎么自学django,内容简而易懂,希望大家可以学习一下,学习完之后肯定会有收获的,下面让小编带大家一起来看看吧。 学Django需要什么基础 Django是 python 语言写的一个Web框架包,所以你得知道一些 Python 基础知识。 其次你最好有一些做网站的经验,懂一些网页 HTML, CSS, JavaScript 的知识不过啊,没有也没关系,其实Django其实很简单的。 以下的建议可能在Django基础的时候呢,可能会不怎么重要,但是如果你想在Django

BTYE的博客 443

Django自学笔记0-0 目录

本篇博客只有目录,正文内容在目录章节链接的博客里 除目录本身外,没有链接的章节,说明内容还没开始编辑 总目录 0-前言 —— 0-0 目录 —— 0-1 简介 —— 0-2 框架版本与相关工具 1 - 入门 —— 1-1 新建项目 —— 1-2 配置说明 —— 1-3 常用命令和常见问题 2 - URL与View —— 2-1 URL与View关系 —— 2-2 URL详细匹配规则 ...

大爽老师的博客 2258

Django自学笔记 1-2 常用配置

————总目录——前言——框架版本———— ======================= 大爽歌作,made by big shuang ======================= 本文目录二 常用配置1-初识`settings.py`:2-新手常用3-STATIC相关 二 常用配置 1-初识settings.py: 项目的配置文件,可用于配置该项目的所有配置。 对于一个项目而言,很多配...

大爽老师的博客 603

<学习笔记>从零开始自学Python-之-web应用框架Django(三)Django模板

Django 模板是一些文本字符串,作用是把文档的表现与数据区分开。模板定义一些占位符和基本的逻辑(模 板标签),规定如何显示文档。通常,模板用于生成 HTML,不过 Django 模板可以生成任何基于文本的格式。

qq_41597915的博客 635

Django自学笔记 2-3 视图(view)函数

————总目录——前言——框架版本———— ======================= 大爽歌作,made by big shuang ======================= 本文目录三 视图(view)函数1- 视图(view)函数介绍2- `HttpRequest`介绍3- `HttpResponse`介绍 三 视图(view)函数 参考文献:https://docs.djangoproject.com/en/2.2/topics/http/views/ 1- 视图(view)函数介.

大爽老师的博客 610

Python自学20天:从零基础到Django博客开发实战

Python作为当下最流行的编程语言之一,以其简洁语法和丰富生态成为新手入门IT的首选。通过理解面向对象编程、装饰器等核心概念,结合Django框架的MVT设计模式,可以快速构建Web应用。在开发环境配置方面,WSL2与VS Code的组合提供了接近Linux原生的开发体验,而Git版本控制则保障了代码管理效率。这些技术特别适合博客系统、内容管理等CRUD应用的开发,本文通过20天自学案例,展示了如何从Python基础过渡到完整项目实战,其中Django框架的用户认证、ORM操作和Markdown集成等关键

weixin_33695082的博客 436

(三)Django学习——两种使用模板路径的方式;模板变量的使用

2.模板变量(我们人为直接给出数据模仿数据库中获取的数据!问题引入:我们在页面上会看到,谁登录的就会显示谁的信息,那么这个页面上变量是怎样实现的呢?

2401_84139624的博客 414

【自学笔记/Django/1】Django新建与初始配置

【自学笔记/Django】Django新建与初始配置 备注: 1.自学Django中,打算将学习步骤记录下来,一来是个总结,二楼方便以后查询。 2.本篇主要记录了Django的初始相关配置,新建项目时只有一些文件需要配置,所以暂未建立模型和视图等。 新建项目 运行终端,输入django-admin startproject [项目名称],创建自己的项目名称 此时在D:/work/下就创建了一个名为kbproject的项目,结构目录如下: 配置数据库 在__init__.py中,加入下面两行代码:

weixin_43338784的博客 273

从零开始的Django框架入门到实战教程(内含实战实例) - 03 前端模板嵌套、Django模板、Django组件(ModelForm)详解(学习笔记)

不同于之前的两篇,这篇主要的知识点是顺着项目实现串联的,主要是基于一个管理系统的小任务,包括部门管理和用户管理。再步骤上主要包括项目的准备工作、前端界面制作、Django模板嵌套、Django组件学习几部分。 1.准备工作 1.1. 创建项目和app 1.2. 项目设计 1.3. 数据库生成 1.4. 创建静态文件 2. 部门基本功能实现 2.1. 部门管理(无Form和ModelForm组件) 2.1.1. 前端壳子 2.1.2. 连接数据库 2.2. 新建部门 2.2.1. 前端壳子 2.2.2. 添加

如果没有躺赢的命,那就站起来奔跑,你的努力一定会对得起这一路的颠沛流离。 4656
上一篇: Django自学笔记 3-2 模板语法结构概述
下一篇: Django自学笔记 7-1 基于类的视图(Class-based views)介绍
大爽歌
博客等级 码龄9年 422粉丝 92原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值