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 logging模块学习笔记
May 24 Python
Python标准库内置函数complex介绍
Nov 25 Python
梯度下降法介绍及利用Python实现的方法示例
Jul 12 Python
python中的set实现不重复的排序原理
Jan 24 Python
浅谈Python中的作用域规则和闭包
Mar 20 Python
python 实现求解字符串集的最长公共前缀方法
Jul 20 Python
python实现共轭梯度法
Jul 03 Python
python3中的eval和exec的区别与联系
Oct 10 Python
python 实现生成均匀分布的点
Dec 05 Python
python错误调试及单元文档测试过程解析
Dec 19 Python
Python三维绘图之Matplotlib库的使用方法
Sep 20 Python
简单且有用的Python数据分析和机器学习代码
Jul 02 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 获取可变函数参数的函数
2009/08/26 PHP
php 代码优化的42条建议 推荐
2009/09/25 PHP
php 判断网页是否是utf8编码的方法
2014/06/06 PHP
Laravel框架表单验证详解
2014/09/04 PHP
简单谈谈favicon
2015/06/10 PHP
PHP中Http协议post请求参数
2015/11/02 PHP
php函数mkdir实现递归创建层级目录
2016/10/27 PHP
JS使用ajax方法获取指定url的head信息中指定字段值的方法
2015/03/24 Javascript
xtemplate node.js 的使用方法实例解析
2016/08/22 Javascript
js实现按钮控制带有停顿效果的图片滚动
2016/08/30 Javascript
基于JavaScript实现前端数据多条件筛选功能
2020/08/19 Javascript
Angularjs中date过滤器失效的问题及解决方法
2018/07/06 Javascript
详解VUE里子组件如何获取父组件动态变化的值
2018/12/26 Javascript
详解vuejs2.0 select 动态绑定下拉框支持多选
2019/04/25 Javascript
微信小程序实现弹框效果
2020/05/26 Javascript
python实现合并两个数组的方法
2015/05/16 Python
详细讲解Python中的文件I/O操作
2015/05/24 Python
Python学习之Anaconda的使用与配置方法
2018/01/04 Python
Python图像处理之简单画板实现方法示例
2018/08/30 Python
python 将列表中的字符串连接成一个长路径的方法
2018/10/23 Python
python利用Opencv实现人脸识别功能
2019/04/25 Python
Python占用的内存优化教程
2019/07/28 Python
python圣诞树编写实例详解
2020/02/13 Python
python json 递归打印所有json子节点信息的例子
2020/02/27 Python
Django windows使用Apache实现部署流程解析
2020/10/12 Python
Python图像读写方法对比
2020/11/16 Python
用python查找统一局域网下ip对应的mac地址
2021/01/13 Python
分享一个H5原生form表单的checkbox特效代码
2018/02/26 HTML / CSS
html5唤起app的方法
2017/11/30 HTML / CSS
女大学生毕业找工作的自我评价
2013/10/03 职场文书
小学门卫岗位职责
2013/12/17 职场文书
打架检讨书300字
2014/02/02 职场文书
园林设计专业毕业生求职信
2014/03/23 职场文书
厉行勤俭节约倡议书
2014/05/16 职场文书
忠犬八公的故事观后感
2015/06/05 职场文书
解决golang在import自己的包报错的问题
2021/04/29 Golang