flask框架jinja2模板与模板继承实例分析


Posted in Python onAugust 01, 2019

本文实例讲述了flask框架jinja2模板与模板继承。分享给大家供大家参考,具体如下:

jinja2模板

from werkzeug.contrib.cache import SimpleCache
from flask import Flask, request, render_template,redirect,abort, url_for
CACHE_TIME = 300
cache = SimpleCache()
cache.timeout = CACHE_TIME
app = Flask(__name__)
@app.before_request
def return_cached():
  if not request.values:
    response = cache.get(request.path)
    if response:
      print("Got the page from cache!")
      return response
  print("Will load the page!")
@app.after_request
def cache_response(response):
  print("aaaaaaaaaaaaaaaaaaaaaa")
  if not request.values:
    cache.set(request.path, response, CACHE_TIME)
  return response
@app.teardown_request
def teardown_request(response):
  print('llllllllllllllllllllllll')
  return "llllllllllllllllllllll"
# @app.route('/')
@app.route('/get_index')
def index():
  return render_template('jinja2.html', a_variable="Developer", navigation=["http://www.163.com", "www.baidu.com"])
if __name__ == '__main__':
  app.run(port=8000)

jinja2.html必须在templates文件夹下,例子如下:

<!DOCTYPE html>
<html>
<head>
  <title>jinja2_test</title>
</head>
<body>
  <ul id="navigation">
    {% for item in navigation %} #表达式
      <li href='{{ item }}'>{{ item }}</li> #输出变量
    {% endfor %}
  </ul>
  <h1>HelloWorld</h1>
  {{a_variable}}#输出变量
    {# aaaa #}#模板注释,加载自动删除
</body>
</html>

jinja2模板继承

父亲:

<!DOCTYPE html>
<html>
<head>
  <title>模板继承</title>
</head>
<body>
  <span>这是基模板</span>
  <div id="content">{% block content %}{% endblock %}</div>
</body>
</html>

{% block content %}{% endblock %}包含jinja2的字模板块;

子:

<!DOCTYPE html>
<html>
<head>
  <title>模板继承</title>
</head>
<body>
  {% extend "jinja2_模板继承.html"%}
  {% block content %}
  <p class="importtant">我在子模板</p>
</body>
</html>

{% extends "jinja2_模板继承.html"%}标签是这里的关键,告诉模板引擎这个模板继承自另外一个模板。该标签必须是子模板的第一个标签,解释器会自动将父亲的内容复制到子模板中!

结果应该是这样:

<!DOCTYPE html>
<html>
<head>
  <title>模板继承</title>
</head>
<body>
  <span>这是基模板</span>
  <div id="content">
      <p class="importtant">我在子模板</p>
    </div>
</body>
</html>

希望本文所述对大家基于flask框架的Python程序设计有所帮助。

Python 相关文章推荐
python使用ctypes模块调用windowsapi获取系统版本示例
Apr 17 Python
用python + hadoop streaming 分布式编程(一) -- 原理介绍,样例程序与本地调试
Jul 14 Python
python对指定目录下文件进行批量重命名的方法
Apr 18 Python
python基于phantomjs实现导入图片
May 13 Python
Python 自动刷博客浏览量实例代码
Jun 14 Python
numpy.std() 计算矩阵标准差的方法
Jul 11 Python
详解安装mitmproxy以及遇到的坑和简单用法
Jan 21 Python
Python实现字典按key或者value进行排序操作示例【sorted】
May 03 Python
python视频按帧截取图片工具
Jul 23 Python
python在OpenCV里实现投影变换效果
Aug 30 Python
python二维键值数组生成转json的例子
Dec 06 Python
django admin管理工具自定义时间区间筛选器DateRangeFilter介绍
May 19 Python
Win10环境python3.7安装dlib模块趟过的坑
Aug 01 #Python
python爬虫解决验证码的思路及示例
Aug 01 #Python
Django多数据库的实现过程详解
Aug 01 #Python
Python解决pip install时出现的Could not fetch URL问题
Aug 01 #Python
numpy.meshgrid()理解(小结)
Aug 01 #Python
Python-接口开发入门解析
Aug 01 #Python
Python列表(list)所有元素的同一操作解析
Aug 01 #Python
You might like
德劲1104的电路分析与改良
2021/03/01 无线电
php下通过伪造http头破解防盗链的代码
2010/07/03 PHP
如何用PHP实现插入排序?
2013/04/10 PHP
php数组(array)输出的三种形式详解
2013/06/05 PHP
CI框架学习笔记(二) -入口文件index.php
2014/10/27 PHP
Laravel 5框架学习之Eloquent (laravel 的ORM)
2015/04/08 PHP
php基于dom实现的图书xml格式数据示例
2017/02/03 PHP
Laravel6.2中用于用户登录的新密码确认流程详解
2019/10/16 PHP
javascript编程起步(第三课)
2007/02/27 Javascript
Javascript Global对象
2009/08/13 Javascript
JavaScript 判断判断某个对象是Object还是一个Array
2010/01/28 Javascript
给artDialog 5.02 增加ajax get功能详细介绍
2012/11/13 Javascript
jquery validate poshytip 自定义样式
2012/11/26 Javascript
jQuery的animate函数实现图文切换动画效果
2015/05/03 Javascript
AngularJS入门教程之AngularJS 模板
2016/08/18 Javascript
Mac系统下Webstorm快捷键整理大全
2017/05/28 Javascript
vue.js实例todoList项目
2017/07/07 Javascript
jQuery实现对网页节点的增删改查功能示例
2017/09/18 jQuery
jQuery中的$是什么意思及 $. 和 $().的区别
2018/04/20 jQuery
js 实现watch监听数据变化的代码
2019/10/13 Javascript
[42:56]VGJ.S vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python爬取当当、京东、亚马逊图书信息代码实例
2017/12/09 Python
Python中关于浮点数的冷知识
2019/09/22 Python
wxpython绘制音频效果
2019/11/18 Python
python3 动态模块导入与全局变量使用实例
2019/12/22 Python
Python实现钉钉订阅消息功能
2020/01/14 Python
解决python 找不到module的问题
2020/02/12 Python
Python短信轰炸的代码
2020/03/25 Python
Python GUI库Tkiner使用方法代码示例
2020/11/27 Python
animation和transition的区别
2020/10/12 HTML / CSS
中学生团员自我评价分享
2013/12/07 职场文书
公司培训欢迎词
2014/01/10 职场文书
安全生产宣传标语
2014/06/06 职场文书
禁毒宣传标语
2014/06/19 职场文书
公司业务员管理制度
2015/08/05 职场文书
python中pd.cut()与pd.qcut()的对比及示例
2022/06/16 Python