一文教会你Flask模板

  • 1.Jinja2模板引擎
    • 基本的渲染模板
    • 控制结构
    • 模板继承
  • 2.自定义错误页面
  • 3.链接
  • 4.静态文件

1.Jinja2模板引擎

模板是包含响应文本的文件,其中包含用占位变量表示的动态部分,其具体值只在请求的上下文中才能知道。使用真实值替换变量,再返回最终得到的响应字符串,这一过程称为渲染。为了渲染模板,Flask使用一个名为Jinja2的强大模板引擎。

基本的渲染模板

Flask在应用目录中的templates子目录里寻找模板,我们在模板目录里面新建一个index.html文件:

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><title>tt</title>
</head>
<body>
<h1>Hello , {{ name }}</h1>
</body>
</html>

在视图层编写如下代码,向模板中传入一个name值:

from flask import Flask, render_templateapp = Flask(__name__)@app.route('/')
def hello_world():name = "dahe"return render_template('index.html', name = name)

访问主页如下:

在模板中使用的{{ name }}结构表示一个变量,这是一种特殊的占位符,告诉模板引擎这个位置的值从渲染模板时使用的数据中获取

Jinja2能识别所有类型的变量,甚至是一些复杂的类型,例如列表、字典和对象。下面是在模板中使用变量的一些示例:

<p>A value from a dictionary: {{ mydict['key'] }}.</p>
<p>A value from a list: {{ mylist[3] }}.</p>
<p>A value from a list, with a variable index: {{ mylist[myintvar] }}.</p>
<p>A value from an object's method: {{ myobj.somemethod() }}.</p>

变量的值可以使用过滤器修改。过滤器添加在变量名之后,二者之间以竖线分隔。例如,下述模板把name变量的值变成首字母大写的形式:

Hello, {{ name|capitalize }}

Jinja2提供的部分常用过滤器:

一文教会你Flask模板相关推荐

  1. flask 模板 php,Flask 模板系统

    模板 基本数据类型 可以执行python语法,如:dict.get(), list['xx'] 比django 更加亲近于 python 传入函数 - django,自动执行 - flask,不自动执 ...

  2. Vim 自动文件头注释与模板定义

    Vim 自动文件头注释与模板定义 在vim的配置文件.vimrc添加一些配置可以实现创建新文件时自动添加文件头注释,输入特定命令可以生成模板. 使用方法 插入模式输入模式输入seqlogic[Ente ...

  3. CTF_Web:从0学习Flask模板注入(SSTI)

    0x01 前言 最近在刷题的过程中发现服务端模板注入的题目也比较常见,这类注入题目都比较类似,区别就在于不同的框架.不同的过滤规则可能需要的最终payload不一样,本文将以Flask为例学习模板注入 ...

  4. Churchy 教会慈善 Joomla模板 joomla高级模板

    Churchy Joomla模板,教会慈善 类模板.Churchy is a Responsive Joomla Church Template. The Template is powered by ...

  5. Python轻量级Web框架Flask(4)——Flask会话技术和Flask模板语言

    1.客户端会话技术: 会话:服务器端和客户端之间的交互 一个服务器可以被多个浏览器访问,他们之间是通过http协议来完成访问的(1.先请求,后响应:2.响应后会断开连接:3.一次请求就结束了),coo ...

  6. Flask模板语法与继承

    一,Flask模板介绍 1. 什么是flask模板: --理解渲染机制: 没有模板渲染函数的话怎么在浏览器中显示html文件呢? (1)从磁盘中读取html字符串 (2)将满足特定规则的内容进行替换 ...

  7. flask 模板 php,Flask四之模板

    四.模板 FMTV F:form表单 M:Model模型(数据库) T:Template模板 V:view视图(路由) 1.渲染模板 模板是一个包含响应文本的文件,其中包含用占位变量表示的动态部分,其 ...

  8. flask模板上下文和模板继承

    Flask教程今天已经进入到第五讲了,我都是从最基础的点入手讲的,相信你也都学的不错吧 今天我们学习的重点有二:模板上下文和模板继承 模板上下文 上节我们了解到,Jinja2中提供了许多的控制结构,作 ...

  9. flask 模板渲染layui数据表格不显示以及显示不完全

    最近几天用flask开发时碰到使用jinja2模板传递给前端数据报错和数据正确了但是显示不完全的问题,做一个随笔记录,方便其他人碰到这个问题或者以后再碰到这个问题有地方快速查询解决方案 1.通过 fl ...

最新文章

  1. SQLServer 存储过程
  2. 网络语言对作文教学的冲击
  3. LINUX2.4.x网络安全框架
  4. Docker创建一个镜像
  5. JS 异步编程及常考面试题
  6. java main方法static_在java中为什么要把main方法定义为一个static方法?
  7. 对AUTOCAD软件的一些配置
  8. Python学习之路day3-文件操作
  9. C语言的数据类型→字符型数据
  10. Luogu1220 关路灯
  11. 微信桌面版如何同时登陆两个微信账号
  12. 2022年自动化专业、电气工程及其自动化专业大学生可以参加哪些专业相关的竞赛?
  13. OpenCV图像梯度——Scharr算子(cv2.Scharr())
  14. MSP430-流水灯和key
  15. Android-服务Service(2)-bind绑定Service及两种生命周期
  16. efi linux win10,WIN10+UBUNTU15.04 kylin(EFI+GPT)
  17. Project 1:文章抄袭自动检测分析项目
  18. 解决WinCE内存不足问题
  19. 写文章两个星期涨粉1000+,说说我的感想!
  20. 主流雷达供应商的4D成像雷达方案梳理

热门文章

  1. LibQQt系列之十六《QQt版本划分》
  2. 香蕉派(Banana Pi) BPI-M2 Zero 评测试,与树莓派 Zero同尺寸的开发板
  3. windows命令行cmd中查看显卡信息
  4. 医院导诊图怎么做?目前比较好用的医院导航地图是哪一款?
  5. 再谈自建wifi—无法启动承载网络怎么办?
  6. python 截屏 自动发送邮件 实现远程监控屏幕
  7. 网络经济与企业管理【五】之市场营销管理
  8. js禁止右键,禁止复制,复制内容到剪切板
  9. ALE,RFC和CPI-C之间的关系
  10. 说说真实dom和虚拟dom有什么区别,虚拟dom的优势是什么?