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之折腾一下目录
Oct 24 Python
Python操作RabbitMQ服务器实现消息队列的路由功能
Jun 29 Python
详解python中 os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和区别
Jun 23 Python
python对list中的每个元素进行某种操作的方法
Jun 29 Python
Python基于分析Ajax请求实现抓取今日头条街拍图集功能示例
Jul 19 Python
解决安装pycharm后不能执行python脚本的问题
Jan 19 Python
python 根据字典的键值进行排序的方法
Jul 24 Python
python3实现mysql导出excel的方法
Jul 31 Python
Python 在OpenCV里实现仿射变换—坐标变换效果
Aug 30 Python
pytorch实现从本地加载 .pth 格式模型
Feb 14 Python
再也不用花钱买漫画!Python爬取某漫画的脚本及源码
Jun 09 Python
教你怎么用Python实现GIF动图的提取及合成
Jun 15 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
星际RPG字典
2020/03/04 星际争霸
php读取30天之内的根据算法排序的代码
2008/04/06 PHP
PHP Header用于页面跳转要注意的几个问题总结
2008/10/03 PHP
PHP删除特定数组内容并且重建数组索引的方法.
2011/03/25 PHP
PHP 命令行参数详解及应用
2011/05/18 PHP
PHP截取指定图片大小的方法
2014/12/10 PHP
Symfony2学习笔记之系统路由详解
2016/03/17 PHP
Laravel实现短信注册的示例代码
2018/05/29 PHP
PHP静态方法和静态属性及常量属性的区别与介绍
2019/03/22 PHP
javascript实现动态增加删除表格行(兼容IE/FF)
2007/04/02 Javascript
如何快速的呈现我们的网页的技巧整理
2007/07/01 Javascript
jquery cookie插件代码类
2009/05/26 Javascript
cookie中的path与domain属性详解
2013/12/18 Javascript
jquery解决客户端跨域访问问题
2015/01/06 Javascript
jquery validate表单验证的基本用法入门
2016/01/18 Javascript
JS组件中bootstrap multiselect两大组件较量
2016/01/26 Javascript
使用jQuery Ajax 请求webservice来实现更简练的Ajax
2016/08/04 Javascript
jQuery插件zTree实现获取一级节点数据的方法
2017/03/08 Javascript
使用原生js写ajax实例(推荐)
2017/05/31 Javascript
荐书|您有一份JavaScript书单待签收
2017/07/21 Javascript
vue2.0的contextmenu右键弹出菜单的实例代码
2017/07/24 Javascript
利用纯js + transition动画实现移动端web轮播图详解
2017/09/10 Javascript
angular.js和vue.js中实现函数去抖示例(debounce)
2018/01/18 Javascript
JS获取url参数,JS发送json格式的POST请求方法
2018/03/29 Javascript
vue页面切换过渡transition效果
2018/10/08 Javascript
[03:08]迎霜节狂欢!2018年迎霜节珍藏Ⅰ一览
2018/12/25 DOTA
Python实现网站表单提交和模板
2019/01/15 Python
python 自定义装饰器实例详解
2019/07/20 Python
django创建css文件夹的具体方法
2020/07/31 Python
Bandier官网:奢侈、时尚前卫的健身服装首选目的地
2020/07/05 全球购物
JDK安装目录下有哪些内容
2014/08/25 面试题
高中生毕业自我鉴定范文
2013/12/22 职场文书
反邪教警示教育方案
2014/05/13 职场文书
廉洁教育学习材料
2014/05/19 职场文书
综合素质评价思想道德自我评价
2015/03/09 职场文书
如何使用PyCharm及常用配置详解
2021/06/03 Python