FLASK-过滤器、继承

Flask框架——模板 缺省情况下每种出错代码都会对应显示一个黑白的出错页面。注意 render_template()后面的404,这表示页面对应的出错代码是404,即页面不存在。默认情况下200表示:一切正常。在处理请求时,当Flask捕捉到一个异常时,它首先根据代码检索。如果该代码没有注册处理器,它会根据类的继承来查找,确定最合适的注册处理器。如果找不到已注册的处理器HTTPException 子类会显示一个关于代码的通用消息。没有代码的异常会被转换为一个通用的 500 内部服务器错误。 阅读详情

过滤器:

处理变量,把原始的变量经过处理后展示出来。作用的对象是变量。

语法
{{ avater|defulat(‘xxx’) }}

如果在主文件夹中,没有指定avatar的值,则可以在index.html中进行指定。

length过滤器

求列表/字符串/元组的长度。

示例:

python.py

from flask import Flask,render_template

app = Flask(__name__)

@app.route('/')
def index():
    connents = [
        {
            'user':u'徐',
            'content':'xxxx'
        },
        {
            'user': u'sweet',
            'content': 'xxxx'
        }
    ]
    return render_template('index.html', connents=connents)
if __name__ == '__main__':
    app.run(debug=True)

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<img src="{{ avatar|default("http://gitbook.cn/gitchat/activity/58e47b6dc59d53926e61186b") }}" alt="">
<hr>
<p>评论数:({{ connents|length }})</p>
<ul>
    {% for connent in connents %}
        <li>
            <a href="#">{{ connent.user }}</a>
            <p>{{ connent.content }}</p>
        </li>
    {% endfor %}
</ul>
</body>
</html>

继承

继承的作用:可以把一些公共的代码放在父模板中,避免每个模板写同样的代码

语法:
{% extends ‘base.html’ %} base.html为父模板的名称

block实现
作用:可以让子模版实现一些自己的需求。父模板需要提前定义好。
注意:子模版的代码,必须放在block块中。

示例:
python.py

from flask import Flask,render_template

app = Flask(__name__)

@app.route('/')
def index():
    return render_template('index.html')

@app.route('/login/')
def login():
    return render_template('login.html')
if __name__ == '__main__':
    app.run(debug=True)

base.html 父模板

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>{% block title %}{% endblock %}</title>
    <style>
        .nav{
            background: #3a3a3a;
            height: 65px;
        }
        ul{
            overflow: hidden;
        }
        ul li{
            float: left;
            list-style: none;
            padding: 0 10px;
            line-height: 65px;
        }
        ul li a{
            color: #ffffff;
        }
    </style>
</head>
<body>
<div class="nav">
    <ul>
        <li><a herf="#">首页</a></li>
        <li><a herf="#">发布问答</a></li>
    </ul>
</div>
{% block main %} #为导航条下面的内容做接口

{% endblock %}
</body>
</html>

index.html 子模板

{% extends 'base.html' %}
{% block title %}
    首页
{% endblock %}

{% block main %}
    <h1>这是首页</h1>
{% endblock %}

login.html 子模板

{% extends 'base.html' %}

{% block title %}
    登陆
{% endblock %}

{% block main %}
<h1>这是登陆页面</h1>a
{% endblock %}
Flask模板引擎 Jinja2 进阶:宏定义、过滤器与模板继承的复用 本文深入探讨Jinja2模板引擎的三大复用技术:宏定义、过滤器和模板继承,帮助开发者构建可维护的Flask前端代码。宏定义实现UI组件级复用,如标准化表单元素;过滤器处理数据展示逻辑,提供格式化、安全转义等功能;模板继承则解决页面布局的复用问题。文章还展示了如何创建自定义过滤器,如将时间转换为"xx前"格式。这些技术共同体现了DRY原则,能显著提升开发效率,避免代码重复,适合需要处理大量相似结构的Web项目。 阅读详情

相关推荐

Flask模板使用示例及实战教程:templates-flask存储库解析

本文还有配套的精品资源,点击获取 简介:了解Flask模板引擎的详尽指南,包括Jinja2模板语言的介绍和在Flask中的实际应用。通过templates-flask存储库提供的示例,深入学习模板的目录结构、继承、变量表达式、控制流、过滤器、宏和块等高级特性。本教程将指导开发者如何在Flask项目中加载和传递数据到模板,以及如何处理模板中的错误和提高模板的扩展性。掌握这些技...

weixin_32673065的博客 1111

MVC用filter做权限过滤

MVC用filter做权限过滤: 1:创建filter类;类需要继承一个接口,并且重写4个方法;如下: namespace MvcApplication1.Code {     public class paramFilter:System.Web.Mvc.ActionFilterAttribute     {         public override void OnActi

山鹰的专栏 2437

文华财经公式编程:麦语言简介及基础语法

文华财经公式语言(麦语言)是一种专门用于金融领域的编程语言,它是由文华财经公司开发的。提供了丰富的金融计算函数和数据处理功能,可以用于金融市场的数据分析、模型建立和交易策略的开发。例1:A:CLOSE;// 定义变量A为收盘价(盘中k线没有走完的时候A为最新价)。例2:MA5:=MA(C,5);// 定义收盘价的5周期均线(C为CLOSE简写)。例3:A:=REF(C,1);// 取得前一根k线的收盘价。

超哥量化的博客 1万+

Pacemaker+corosync实现高可用集群

一:Pacemaker和corosync概述:Pacemaker(心脏起搏器),是一个集群管理资源器。但是其不提供心跳信息。pacemaker是一个延续的CRM。Pacemaker到了V3的版本以后拆分了多个项目,其中pacemaker就是拆分出来的资源管理器。Heart 3.0拆分之后的组成部分:*Heartbeat:将原来的消息通信层独立为heartbeat项目,新的he...

weixin_34245749的博客 582

Foxglove Studio实战:5步搞定自动驾驶数据可视化(附避坑指南)

本文详细介绍了如何使用Foxglove Studio高效搭建自动驾驶数据可视化工作流。通过五个核心步骤:环境准备、数据导入、面板搭建、交互分析与自动化集成,帮助开发者快速掌握这一专为机器人系统设计的开源平台。文章重点解析了其与ROS/ROS 2、MCAP等数据源的无缝对接,以及3D点云、多传感器融合、团队标注等核心功能,并附有实用的性能优化与避坑指南,旨在提升算法调试与团队协作效率。

d3e4f的博客 335

农业杂草检测——棉花杂草数据集

然后将本层13×13的特征图谱经过×2上采样扩充到26×26,并与上层中26×26的特征图谱拼接,得到新的26×26的特征图谱,在该特征尺度上进行第二次预测,此时得到的特征图谱是相对输入图像16倍下采样,具有中尺度感受野,适合检测中等尺度对象;通过目标检测,能够及时清除杂草,减少病虫害的滋生和传播,保障棉花的健康生长,并有助于降低生产成本。对于地膜覆盖的棉田,由于膜内耕作层土温高、底墒好,杂草出苗早而集中,一般覆膜后5 - 7天杂草陆续出土,在墒情好的情况下,15天左右即形成出土高峰。

qq_38220914的博客 1245

flask后台框架1.3(过滤器+继承+url链接及静态文件加载)

过滤器 过滤器,理解起来就是我们当前拿到了一个变量,但是我们这个变量不符合当前文件的操作,我们需要对这个数据进行一定的操作才能使用(比如:求和,查询链接是否失效等)所以就产生了过滤器这个操作,过滤器是运用在前端的一个操作。 看个最常用的求评论数总数的操作,先看后台的flask中的代码 commit={ 'aaa','bbb','cxk' } 我 们定义了简单的三条留言,然后如果我们通过渲...

qq_42730789的博客 1474

基于ESP32的智能厨房控制系统开发

随着智能家居技术的发展,越来越多的家庭开始将传统的厨房设备进行智能化改造,以提高烹饪效率和生活质量。智能厨房控制系统是物联网(IoT)应用的重要组成部分,它将家居设备、传感器和网络结合起来,提供便捷的控制与监测功能,使厨房的烹饪过程更加智能、便捷和安全。基于ESP32的智能厨房控制系统不仅能够实现远程控制和监控,还能实现温度、湿度、烹饪状态的实时反馈,甚至具备智能化的推荐和自动化控制能力。ESP32是一款功能强大、集成度高的嵌入式开发平台,具有Wi-Fi和蓝牙双模通信能力,广泛应用于物联网设备的开发。

2201_76125393的博客 658

flask---》自定义过滤器 模板继承 include 宏

模板继承:需要模版继承的情况:1。多个模板具有完全相同的顶部和底部2。多个模板具有相同的模板内容,但是内容中部分不一样3。多个模板具有完全相同的模板内容标签:{% block 名字 %}1.定义父模板2.子模板继承父模板使用步骤:父模板:1。定义一个base.html的模板2。分析模板中哪些是变化的比如:{% block title %}父模板的title{% endblock %}对变化的部分用block进行"预留位置"也称作:挖坑3。

python_web全栈 842

可控异常的契约化设计:在 ABAP 中用 CX_STATIC_CHECK 把可预期错误变成接口的一部分

文章摘要: 本文探讨了ABAP系统中异常处理的工程化设计原则,强调将可预期的业务异常作为接口契约的一部分。核心观点是:对于调用方能够合理处理的错误情况,应使用继承自CX_STATIC_CHECK的受检异常,通过方法签名强制调用方处理或显式转发。文章对比了ABAP三大异常根类的适用场景,提出"三问法"判断异常是否适合受检处理,并给出了包含上下文信息的异常类实现示例。通过Fiori文件上传案例,展示了如何在分层架构中合理传递和转换异常,最终在OData服务层将业务异常映射为标准错误响应。这种

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

关于如何在matlab中导入并翻译Hypemesh导出的大型刚度矩阵txt文本

如何将它翻译成matlab可以使用的矩阵变量,并参与运算。 由于这个大型刚度矩阵125万x125万≈1e12。matlab甚至其他计算软件无法保存这个大的一个矩阵文件。而这个刚度矩阵作为稀疏矩阵其中非零元素的数目只有有500多万。采用sparse稀疏矩阵技术是可以保存。 这里简单介绍一下这个Hypemesh导出的大型刚度矩阵txt文本。如图DMIG开头的标识符是换行符,后面两列是表示这条非零元素在刚度矩阵中列数的信息。我们已经将左边字母和符号等批量删除,得到了右边textread函数可以...

wenyusuran的专栏 1795

Flask后端笔记(三)Jinja2模板、过滤器、表单、宏、模板继承、包含

Flask后端笔记Jinja2模板基本流程 Jinja2模板 基本流程 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Template</title> </head> <body> <h1>hello {{ name }}</h1> </body> </h

行者 1461

抖音移动端Web用户主页视频列表爬虫实战:逆向加密参数与高频采集方案

App端Hook/抓包:需要安卓逆向、Xposed或Frida,门槛高且容易被风控。官方开放API:限制极多,几乎不开放用户级视频列表。PC端Web:页面加载方式繁杂,且大量依赖懒加载与内部状态。移动端Web(:接口相对稳定,加密逻辑集中,且适合使用Requests/HTTPSession模拟,无需渲染引擎。本文聚焦于移动端Web下的用户主页视频列表爬取,采用Python 3.11 + httpx + PyExecJS + 正则/JSON解析的组合,破解X-Bogus签名和_signature。

2201_76125261的博客 846

flask模板,变量,标签,转义,过滤器,宏,继承,包含,引用,消息闪现

- 模板语法(变量,标签,过滤器) - 模板的继承-extends,包含-include,引用-self - 模板的宏定义和使用,消息闪现 import os from datetime import datetime from flask import Flask, g, request,render_template_string, url_for, flash from flask import render_template,redirect mbapp = Flask(__name__

NLstudy33的博客 335

<PLC><西门子><工控>西门子博图V18中使用SCL语言编写一个CRC16-modbus校验程序

西门子官方对于SCL语言的介绍如下:SCL 编程语言SCL 编程语言SCL(Structured Control Language,结构化控制语言)是一种基于 PASCAL 的高级编程语言。这种语言基于标准DIN EN 61131-3(国际标准为 IEC 1131-3)。根据该标准,可对用于可编程逻辑控制器的编程语言进行标准化。SCL 编程语言实现了该标准中定义的 ST 语言 (结构化文本) 的PLCopen 初级水平。语言元素。

用沸腾的热血,支付我们的人生吧! 1436

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

【Flask从入门到精通:第七课:流程控制、过滤器、模板继承以及CSRF 攻击防范】

过滤器的本质是函数。当模板内置的过滤器不能满足项目需求,可以自定义过滤器。一种是通过Flask应用对象的方法进行注册通过装饰器来实现自定义过滤器进行注册注意:自定义的过滤器名称如果和内置的过滤器重名,会覆盖内置的过滤器。需求:编写一个过滤器,保留2位小数方式一通过调用应用程序实例的 add_template_filter 方法实现自定义过滤器。# 自定义过滤器# 自定义过滤器 def do_fixed(data , length) : return f"%. {

weixin_50556117的博客 1129

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Flask_day_2渲染Jinja2模板和传参(if判断、for循环、过滤器、继承和block、URL链接)

***Flask渲染Jinja2模板和传参: 1.如何渲染模板 *模板放在'templates'文件夹下 *在'flask'中导入'render_template' *在视频函数中,用'render_template' 函数,渲染模板,注意:只要填写模板的名字,不需要填写模板的名字,不需要填写‘templates’这个文件夹的路径。 2.模板传参: *如果只有一个或者少量...

qq_41371858的博客 2409

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Flask-03-Jinja2模板引擎、过滤器、模板继承、解决csrf攻击、数据库操作(ORM,Flask-SQLAlchemy)、数据表操作(增删改查)

一、Jinja2模板引擎 Flask内置的模板语言,它的设计思想来源于 Django 的模板引擎,并扩展了其语法和一系列强大的功能。 渲染模版函数 Flask提供的 render_template 函数封装了该模板引擎 render_template 函数的第一个参数是模板的文件名,后面的参数都是键值对,表示模板中变量对应的真实值。 1.模板基本使用 (1)在flask应用对象创建的时候,设置或者保留template_folder参数,创建模板目录 app = Flask(__name__,templa

Hi文的博客 616

Jinja2模板与模板继承

Jinja2 两个概念: Jinja2:是 Python 下一个被广泛应用的模板引擎,是由Python实现的模板语言,他的设计思想来源于 Django 的模板引擎,并扩展了其语法和一系列强大的功能,其是Flask内置的模板语言。 模板语言:是一种被设计来自动生成文档的简单文本格式,在模板语言中,一般都会把一些变量传给模板,替换模板的特定位置上预先定义好的占位变量名。 渲染模版函数 Flask...

weixin_43250623的博客 3326

Flask(入门七)~(过滤,包含,继承,宏)

之前我们只简单了解了模板,今天我们具体来说说模板中的几个基本使用: 过滤器&amp;amp;自定义过滤器 控制代码块 sa’nsan宏、继承、包含 Flask 的模板中特有变量和方法 web表单 CSRF 今天主要来说说Flask中的过滤 继承 包含 和宏 过滤器 过滤器的本质就是函数。有时候我们不仅仅只是需要输出变量的值,我们还需要修改变量的显示,甚至格式化、运算等等,而在模板中是不能直接调用 ...

丿Lucky丶三少灬的博客 230

Flask中的自定义过滤器、自定义模版

Flask中的过滤器、模版说明一、过滤器(一)、flask中自带的过滤器(二)、自定义过滤器二、模版(一)、模版继承(二)、include(三)、宏 说明 本文主要讲解Flask中的过滤器的自定义以及模版的自定义 一、过滤器 过滤器的本质是函数,有时候我们不仅仅只是需要输出变量的值,我们还需要修改变量的显示,甚至格式化、运算等等,而在模板中是不能直接调用 Python 中的某些方法,那么这就用到了过滤器。 (一)、flask中自带的过滤器 html中变量的引用:{{ 变量 }} 过滤器的是用方式:{{ 变量

weixin_45294285的博客 392

flask 视图模版

过滤器的本质是函数。当模板内置的过滤器不能满足项目需求,可以自定义过滤器。自定义过滤器有两种实现方式:一种是通过Flask应用对象的方法进行注册通过装饰器来实现自定义过滤器进行注册注意:自定义的过滤器名称如果和内置的过滤器重名,会覆盖内置的过滤器。需求:编写一个过滤器,保留n位小数方式一通过调用应用程序实例的 add_template_filter 方法实现自定义过滤器。该方法第一个参数是函数名,第二个参数是自定义的过滤器名称:return f"{data}元"

blank_memory_的博客 837

Flask(四) 模板渲染render_template

Flask 使用 Jinja2 模板引擎来处理模板渲染。模板渲染允许你将动态内容插入到 HTML 页面中,使得应用能够生成动态的网页内容。

weixin_40203719的博客 1288

3 Flask模板引擎 Jinja2

Jinja2 具有非常丰富的功能,包括模板继承、控制结构、过滤器等,可以帮助我们构建清晰且可维护的 Web 页面。本文将深入探讨 Flask 中如何使用 Jinja2 模板引擎,介绍模板语法、控制结构、过滤器、模板继承和静态文件处理等。模板继承是 Jinja2 的一大特色,它允许我们创建基模板(base template),然后在不同的子模板中继承和修改基模板的内容。通过模板继承,我们可以确保整个网站的布局一致,同时允许不同页面在需要的地方插入不同的内容。在 Flask 模板中,使用。

wujianyouhun的专栏 738

Flask模板语法与继承

flask2

m0_63302973的博客 728

有故事,带项目的flask教程(4)---flask的jinja2模板---模板的if,for高级用法,过滤器和模板继承(2)

新的一天,老项和小王还是早早来到了公司,继续开始flask的教和学。 老项说:“今天上班前这些时间我正好把模板剩下的一些内容给你讲一下,主要就是jinja2模板的过滤器和继承,讲完这些你今天回去就可以开始准备这个项目的前端页面了。然后把页面作为模板对数据部分的展示用jinja2模板引擎进行改造。昨天的任务完成的怎么样?有没有遇到什么问题?” 小王说:“老铁你别说,还真有问题,你看看我总结的笔记...

毕老的python教室 1万+
上一篇: jinja2中if和for的使用
下一篇: FLASK-url链接、加载静态文件
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值