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中处理字符串之isdigit()方法的使用
May 18 Python
Python+树莓派+YOLO打造一款人工智能照相机
Jan 02 Python
Pandas标记删除重复记录的方法
Apr 08 Python
详谈Python中列表list,元祖tuple和numpy中的array区别
Apr 18 Python
Python中的TCP socket写法示例
May 11 Python
python中实现字符串翻转的方法
Jul 11 Python
django的聚合函数和aggregate、annotate方法使用详解
Jul 23 Python
Python.append()与Python.expand()用法详解
Dec 18 Python
使用Python爬取弹出窗口信息的实例
Mar 14 Python
python+requests接口自动化框架的实现
Aug 31 Python
python爬虫实现爬取同一个网站的多页数据的实例讲解
Jan 18 Python
Python实现GIF动图以及视频卡通化详解
Dec 06 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提取中文首字母
2008/04/09 PHP
php简单分页类实现方法
2015/02/26 PHP
ThinkPHP函数详解之M方法和R方法
2015/09/10 PHP
使用Apache的rewrite
2021/03/09 Servers
javascript一点特殊用法
2008/05/28 Javascript
百度留言本js 大家可以参考下
2009/10/13 Javascript
JS拖动技术 关于setCapture使用
2010/12/09 Javascript
JS的数组迭代方法
2015/02/05 Javascript
jquery实现根据浏览器窗口大小自动缩放图片的方法
2015/07/17 Javascript
JavaScript操作HTML DOM节点的基础教程
2016/03/11 Javascript
微信小程序  audio音频播放详解及实例
2016/11/02 Javascript
文件上传插件SWFUpload的使用指南
2016/11/29 Javascript
AngularJS constant和value区别详解
2017/02/28 Javascript
解决vue2.x中数据渲染以及vuex缓存的问题
2017/07/13 Javascript
javaScript 连接打印机,打印小票的实例
2017/12/29 Javascript
vue-cli webpack 引入jquery的方法
2018/01/10 jQuery
angularJS的radio实现单项二选一的使用方法
2018/02/28 Javascript
解决vue router组件状态刷新消失的问题
2018/08/01 Javascript
vue.js的状态管理vuex中store的使用详解
2019/11/08 Javascript
微信浏览器左上角返回按钮监听的实现
2020/03/04 Javascript
基于JS+HTML实现弹窗提示是否确认提交功能
2020/06/17 Javascript
JS实现audio音频剪裁剪切复制播放与上传(步骤详解)
2020/07/28 Javascript
Python遍历目录中的所有文件的方法
2016/07/08 Python
不可错过的十本Python好书
2017/07/06 Python
python实现多张图片拼接成大图
2019/01/15 Python
Django框架model模型对象验证实现方法分析
2019/10/02 Python
解决Python二维数组赋值问题
2019/11/28 Python
Python Selenium参数配置方法解析
2020/01/19 Python
pycharm安装及如何导入numpy
2020/04/03 Python
利用HTML5中的Canvas绘制一张笑脸的教程
2015/05/07 HTML / CSS
乔丹诺(Giordano)酒庄德国官网:找到最好的意大利葡萄酒
2017/12/28 全球购物
注塑工厂厂长岗位职责
2013/12/02 职场文书
5.12护士节演讲稿
2014/04/30 职场文书
幼儿园运动会口号
2014/06/07 职场文书
python 下划线的多种应用场景总结
2021/05/12 Python
Mysql 数据库中的 redo log 和 binlog 写入策略
2022/04/26 MySQL