模板是一个web开发必备的模块。因为我们在渲染一个网页的时候,并不是只渲染一个纯文本字符串,而是需要渲染一个有富文本标签的页面。这时候我们就需要使用模板了。在Flask中,配套的模板是Jinja2Jinja2的作者也是Flask的作者。这个模板非常的强大,并且执行效率高。

一、Flask渲染Jinja模板:

from flask import Flask,render_template
app = Flask(__name__)@app.route('/about/')
def about():return render_template('about.html')

当访问/about/的时候,about()函数会在当前目录下的templates文件夹下寻找about.html模板文件。如果想更改模板文件地址,应该在创建app的时候,给Flask传递一个关键字参数template_folder,指定具体的路径

from flask import Flask,render_template
app = Flask(__name__,template_folder=r'C:\templates')@app.route('/about/')
def about():return render_template('about.html')
from flask import Flask,render_template
app = Flask(__name__)@app.route('/about/')
def about():# return render_template('about.html',user='zhiliao')return render_template('about.html',**{'user':'zhiliao'})
 <html lang="en"><head><title>My Webpage</title></head><body><ul id="navigation">{% for item in navigation %}<li><a href="{{ item.href }}">{{ item.caption }}</a></li>{% endfor %}</ul>{{ a_variable }}{{ user.name }}{{ user['name'] }}{# a comment #}</body>
</html>

二、属性访问规则:

  1. 比如在模板中有一个变量这样使用:foo.bar,那么在Jinja2中是这样进行访问的:

    • 先去查找foobar这个属性,也即通过getattr(foo,'bar')
    • 如果没有,就去通过foo.__getitem__('bar')的方式进行查找。
    • 如果以上两种方式都没有找到,返回一个undefined
  2. 在模板中有一个变量这样使用:foo['bar'],那么在Jinja2中是这样进行访问:

    • 通过foo.__getitem__('bar')的方式进行查找。
    • 如果没有,就通过getattr(foo,'bar')的方式进行查找。
    • 如果以上没有找到,则返回一个undefined

jinja模板简介与概述相关推荐

  1. Linux之Saltstack中grains、pillar取值和jinja模板的应用

    一.grains和pillar介绍 1. Grains简介 Grains是SaltStack的一个组件,存放在SaltStack的minion端.当salt-minion启动时会把收集到的数据静态存放 ...

  2. Flask学习之旅——2.1 模板简介及基础使用

    Flask学习之旅--2.1 模板简介及基础使用 前言 本文为<知了传课--模板简介>的学习笔记. 原文地址:第一节:模板简介 - Python框架Flask基础教程 - 知了传课 (zl ...

  3. SaltStack中的jinja模板

    目录 1.基础简介 2.基本引用方式 3.在grains中的使用 4.在pillar中的使用 1.基础简介 Jinja是一种基于python的模板引擎,在SLS文件里可以直接使用jinja模板来做一些 ...

  4. 用 Flask 来写个轻博客 (12) — M(V)C_编写和继承 Jinja 模板

    Blog 项目源码:https://github.com/JmilkFan/JmilkFan-s-Blog 目录 目录 前文列表 扩展阅读 使用 Bootstrap 编写 Jinja 模板文件 继承一 ...

  5. MIT自然语言处理第一讲:简介和概述(第三部分)

    自然语言处理:背景和概述 Natural Language Processing:Background and Overview 作者:Regina Barzilay(MIT,EECS Departm ...

  6. ajax jinja,在Flask中根据ajax response呈现Jinja模板

    这是我第一次潜入Flask+Jinja,但我以前用过很多把手,所以我知道这是可能的,但我不知道如何用Flask完成这个任务: 我正在构建一个应用程序:用户输入一个字符串,这个字符串通过python脚本 ...

  7. Spring Boot - Thymeleaf模板简介以及集成

    文章目录 Spring Boot - Thymeleaf模板简介以及集成 1.什么是Thymeleaf? 2.标准表达式 2.1 变量表达式 2.2 选择表达式/星号表达式 2.3 URL表达式 2. ...

  8. Saltstack自动化运维详解(数据系统 jinja模板 job管理)

    文章目录 1. saltstack 的数据系统 1.1 SaltStack组件之Grains 1.grains使用方法 信息查询 查询某个key值 用Grains来匹配minion 2.自定义grai ...

  9. 【Superset】Jinja模板功能及设置动态参数

    目录 1.Jinja模板功能介绍 1.1 开启Jinja模板 1.2 常用默认变量 1.3 自定义Jinja上下文 1.4 Jina模板默认值 1.5 特殊过滤参数 1.6 自定义模板 1.7 宏 2 ...

  10. 企业运维实战--自动化运维Saltstack(上)之saltstack的安装部署、远程执行、grains和pillar详解以及Jinja模板的使用

    企业运维实战--自动化运维Saltstack(上) 前言 一.Saltstack安装部署 二.sls文件远程执行 saltstack安装httpd并启动 saltstack源码编译安装nginx 启动 ...

最新文章

  1. 返回顶部的js实现(jQuery/MooTools)
  2. 深度|​揭秘5G+AI时代的机器人世界!七大核心技术改变人类生活!
  3. jdbctemplate 开启事务_来,讲讲Spring事务有哪些坑?
  4. vue 请求多个api_vue 一个input同时请求两个接口
  5. AtCoder AGC034F RNG and XOR (概率期望、FWT)
  6. 关于Android Force Close 出现的原因 以及解决方法
  7. JavaScript之event事件
  8. android 左滑按钮,android开发类似微信列表向左滑动按钮操作
  9. python作品讲解_python实例作品
  10. python编程入门视频推荐_Python编程入门2021攻略,书籍推荐,视频推荐,每天更新...
  11. 鼠标双击检测_雷蛇巴塞利斯蛇无线游戏鼠标评测:青出于蓝胜于蓝
  12. linux 循环小时,shell脚本日期遍历(按天按小时)
  13. 20. Magento 创建新闻模块(1)
  14. maven 配置远程仓库服务器密码
  15. visio2016下载与安装
  16. html——陆海网站练习
  17. 区块链智能合约----Solidity状态修饰符view、pure
  18. Python win8安装
  19. kettle Call From LAPTOP-14BPR3NI/192.168.1.2 to locahost:8020 failed on connection
  20. 优质的服务器机房有哪些表现

热门文章

  1. 2022全国智慧医院建设大会
  2. Java web 购物网站开发
  3. 计算机相关各机构简称
  4. 单片机底层通信协议② —— 一线协议1-Wire、串口UART
  5. 赛思互动:管理学最重要的八大定理
  6. 面经-毕马威南京-实习-算法-20191216
  7. 总结:KPCB中国合伙人周炜
  8. python结束函数_python函数结束
  9. 儿童编程软件python-一款儿童编程入门的理想工具——PythonTurtle
  10. 微信H5活动抽奖单页面模板源码