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中__call__用法实例
Aug 29 Python
python制作websocket服务器实例分享
Nov 20 Python
python 简单搭建阻塞式单进程,多进程,多线程服务的实例
Nov 01 Python
Python算法输出1-9数组形成的结果为100的所有运算式
Nov 03 Python
Python中字符串与编码示例代码
May 20 Python
对PyQt5中的菜单栏和工具栏实例详解
Jun 20 Python
python保留小数位的三种实现方法
Jan 07 Python
Macbook安装Python最新版本、GUI开发环境、图像处理、视频处理环境详解
Feb 17 Python
Django media static外部访问Django中的图片设置教程
Apr 07 Python
Python中常见的数制转换有哪些
May 27 Python
Python实现爬取并分析电商评论
Jun 19 Python
Python 如何对文件目录操作
Jul 10 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
PHP COOKIE设置为浏览器进程
2009/06/21 PHP
PHP中的array数组类型分析说明
2010/07/27 PHP
PHP对表单提交特殊字符的过滤和处理方法汇总
2014/02/18 PHP
在Nginx上部署ThinkPHP项目教程
2015/02/02 PHP
Joomla框架实现字符串截取的方法示例
2017/07/18 PHP
PHP批量删除jQuery操作
2017/07/23 PHP
Phpstorm+Xdebug断点调试PHP的方法
2018/05/14 PHP
PHP中常见的密码处理方式和建议总结
2018/10/14 PHP
PHP实用小技巧之调用录像的方法
2019/12/05 PHP
新页面打开实际尺寸的图片
2006/08/25 Javascript
javascript静态的url如何传递
2007/05/03 Javascript
JavaScript 5 新增 Array 方法实现介绍
2012/02/06 Javascript
window.location 对象所包含的属性
2014/10/10 Javascript
常用的jQuery前端技巧收集
2014/12/24 Javascript
纯javascript代码实现计算器功能(三种方法)
2015/09/07 Javascript
javascript实现加载xml文件的方法
2015/11/24 Javascript
全面解析Bootstrap布局组件应用
2016/02/22 Javascript
js实现简单的网页换肤效果
2017/01/18 Javascript
jQuery源码分析之init的详细介绍
2017/02/13 Javascript
Js实现京东无延迟菜单效果实例(demo)
2017/06/02 Javascript
Vue动态组件和异步组件原理详解
2019/05/06 Javascript
Vue 无限滚动加载指令实现方法
2019/05/28 Javascript
JS中实现浅拷贝和深拷贝的代码详解
2019/06/05 Javascript
[00:56]2014DOTA2国际邀请赛 DK、iG 赛前探访
2014/07/10 DOTA
Python实现利用最大公约数求三个正整数的最小公倍数示例
2017/09/30 Python
pandas.DataFrame选取/排除特定行的方法
2018/07/03 Python
Python中IP地址处理IPy模块的方法
2019/08/16 Python
python GUI库图形界面开发之PyQt5结合Qt Designer创建信号与槽的详细方法与实例
2020/03/08 Python
基于python爬取链家二手房信息代码示例
2020/10/21 Python
建筑公司文秘岗位职责
2013/11/29 职场文书
竞选演讲稿范文
2013/12/28 职场文书
酒店端午节促销方案
2014/02/18 职场文书
计算机维护专业推荐信
2014/02/27 职场文书
服装区域经理岗位职责
2015/04/10 职场文书
JavaScript展开运算符和剩余运算符的区别详解
2022/02/18 Javascript
MongoDB数据库部署环境准备及使用介绍
2022/03/21 MongoDB