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常用模块介绍
Nov 21 Python
在Python中使用模块的教程
Apr 27 Python
python交互式图形编程实例(一)
Nov 17 Python
python顺序的读取文件夹下名称有序的文件方法
Jul 11 Python
Python求一批字符串的最长公共前缀算法示例
Mar 02 Python
python爬虫 urllib模块url编码处理详解
Aug 20 Python
Python数据分析模块pandas用法详解
Sep 04 Python
使用tensorflow DataSet实现高效加载变长文本输入
Jan 20 Python
Django查询优化及ajax编码格式原理解析
Mar 25 Python
python爬虫容易学吗
Jun 02 Python
python如何随机生成高强度密码
Aug 19 Python
分享一个python的aes加密代码
Dec 22 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
Terran历史背景
2020/03/14 星际争霸
PHP中函数内引用全局变量的方法
2008/10/20 PHP
深入Memcache的Session数据的多服务器共享详解
2013/06/13 PHP
Laravel如何友好的修改.env配置文件详解
2017/06/07 PHP
详解no input file specified 三种解决方法
2019/11/29 PHP
发布BlueShow v1.0 图片浏览器(类似lightbox)blueshow.js 打包下载
2007/07/21 Javascript
Javascript 调试利器 Firebug使用详解六
2009/07/05 Javascript
jquery $.ajax()取xml数据的小问题解决方法
2010/11/20 Javascript
图片轮换效果实现代码(点击按钮停止执行)
2013/04/12 Javascript
JS简单的轮播的图片滚动实例
2013/06/17 Javascript
js调用css属性写法
2013/09/21 Javascript
前端开发过程中浏览器版本的两种判定方法
2013/10/30 Javascript
JavaScript验证Email(3种方法)
2015/09/21 Javascript
jQuery插件实现多级联动菜单效果
2015/12/01 Javascript
JS与jQuery实现隔行变色的方法
2016/09/09 Javascript
AngularJS实现用户登录状态判断的方法(Model添加拦截过滤器,路由增加限制)
2016/12/12 Javascript
Vue中的vue-resource示例详解
2018/11/02 Javascript
JavaScript实现单英文金山打字通
2020/07/24 Javascript
vue+echarts实现动态折线图的方法与注意
2020/09/01 Javascript
Openlayers实现距离面积测量
2020/09/28 Javascript
代码块高亮可复制显示js插件highlight.js+clipboard.js整合
2021/02/15 Javascript
零基础学Python(一)Python环境安装
2014/08/20 Python
python cx_Oracle的基础使用方法(连接和增删改查)
2017/11/19 Python
python 实现将txt文件多行合并为一行并将中间的空格去掉方法
2018/12/20 Python
手把手教你安装Windows版本的Tensorflow
2020/03/26 Python
Python实现ElGamal加密算法的示例代码
2020/06/19 Python
python3中calendar返回某一时间点实例讲解
2020/11/18 Python
Python中过滤字符串列表的方法
2020/12/22 Python
澳大利亚首屈一指的在线购物目的地:Kogan.com
2017/02/02 全球购物
老公保证书范文
2014/04/29 职场文书
化工专业自荐书
2014/06/16 职场文书
家庭贫困证明书(3篇)
2014/09/15 职场文书
ktv服务员岗位职责
2015/02/09 职场文书
辛亥革命观后感
2015/06/02 职场文书
2016庆祝国庆67周年宣传语
2015/11/25 职场文书
卖车协议书范文
2016/03/23 职场文书