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 相关文章推荐
用matplotlib画等高线图详解
Dec 14 Python
基于Python实现的微信好友数据分析
Feb 26 Python
VScode编写第一个Python程序HelloWorld步骤
Apr 06 Python
python数据结构学习之实现线性表的顺序
Sep 28 Python
PyQt5实现五子棋游戏(人机对弈)
Mar 24 Python
python 自定义装饰器实例详解
Jul 20 Python
python pptx复制指定页的ppt教程
Feb 14 Python
Python如何省略括号方法详解
Mar 21 Python
Python调用接口合并Excel表代码实例
Mar 31 Python
Python获取excel内容及相关操作代码实例
Aug 10 Python
python 爬取英雄联盟皮肤并下载的示例
Dec 04 Python
Flask处理Web表单的实现方法
Jan 31 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出错界面
2006/10/09 PHP
Memcache 在PHP中的使用技巧
2010/02/08 PHP
php in_array 函数使用说明与in_array需要注意的地方说明
2010/04/13 PHP
PHP提示Notice: Undefined variable的解决办法
2012/11/24 PHP
php实现的简单日志写入函数
2015/03/31 PHP
PHP Filter过滤器全面解析
2016/08/09 PHP
yii框架结合charjs统计上一年与当前年数据的方法示例
2020/04/04 PHP
js特效,页面下雪的小例子
2013/06/17 Javascript
Javascript点击其他任意地方隐藏关闭DIV实例
2016/06/21 Javascript
javascript和jQuery实现网页实时聊天的ajax长轮询
2016/07/20 Javascript
详解Javascript ES6中的箭头函数(Arrow Functions)
2016/08/24 Javascript
javascript的document中的动态添加标签实现方法
2016/10/24 Javascript
纯js仿淘宝京东商品放大镜功能
2017/03/02 Javascript
jquery表单提交带错误信息提示效果
2017/03/09 Javascript
Vuex之理解Mutations的用法实例
2017/04/19 Javascript
详解用webpack2搭建angular2的项目
2017/06/22 Javascript
JS+Canvas绘制动态时钟效果
2017/11/10 Javascript
js实现div色块拖动录制
2020/01/16 Javascript
Python守护进程(daemon)代码实例
2015/03/06 Python
django开发之settings.py中变量的全局引用详解
2017/03/29 Python
Python3 模块、包调用&amp;路径详解
2017/10/25 Python
python如何在循环引用中管理内存
2018/03/20 Python
python中map的基本用法示例
2018/09/10 Python
对Python的多进程锁的使用方法详解
2019/02/18 Python
python SocketServer源码深入解读
2019/09/17 Python
python实现连连看游戏
2020/02/14 Python
新建文件时Pycharm中自动设置头部模板信息的方法
2020/04/17 Python
pycharm进入时每次都是insert模式的解决方式
2021/02/05 Python
澳大利亚票务和娱乐市场领导者:Ticketmaster
2017/03/03 全球购物
英国知名化妆品网站:Revolution Beauty(原TAM Beauty)
2018/02/28 全球购物
Becextech新西兰:数码单反相机和手机在线商店
2018/04/27 全球购物
苏格兰在线威士忌商店:The Whisky Barrel
2019/05/07 全球购物
驾驶员培训方案
2014/05/01 职场文书
委托证明模板
2014/09/16 职场文书
食品质检员岗位职责
2015/04/08 职场文书
校园音乐节目广播稿
2015/08/19 职场文书