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中模拟enum枚举类型的5种方法分享
Nov 22 Python
Python中join和split用法实例
Apr 14 Python
Python中return语句用法实例分析
Aug 04 Python
python3 图片referer防盗链的实现方法
Mar 12 Python
Python使用Matplotlib模块时坐标轴标题中文及各种特殊符号显示方法
May 04 Python
Python实现定期检查源目录与备份目录的差异并进行备份功能示例
Feb 27 Python
Python TestCase中的断言方法介绍
May 02 Python
使用pandas 将DataFrame转化成dict
Dec 10 Python
基于python修改srt字幕的时间轴
Feb 03 Python
Django Path转换器自定义及正则代码实例
May 29 Python
python 操作excel表格的方法
Dec 05 Python
我对PyTorch dataloader里的shuffle=True的理解
May 20 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下实现农历日历的代码
2007/03/07 PHP
网站用php实现paypal整合方法
2010/11/28 PHP
php检测useragent版本示例
2014/03/24 PHP
老司机传授Ubuntu下Apache+PHP+MySQL环境搭建攻略
2016/03/20 PHP
WordPress伪静态规则设置代码实例
2020/12/10 PHP
经常用的图片在容器中的水平垂直居中实例
2007/06/10 Javascript
javascript setTimeout和setInterval 的区别
2009/12/08 Javascript
jquery获取自定义属性(attr和prop)实例介绍
2013/04/21 Javascript
原生js实现日期计算器功能
2017/02/17 Javascript
JS模拟实现ECMAScript5新增的数组方法
2017/03/20 Javascript
微信小程序wx:for和wx:for-item的用法详解
2018/04/01 Javascript
关于js对textarea换行符的处理方法浅析
2018/08/03 Javascript
详解小程序云开发攻略(解决最棘手的问题)
2019/09/30 Javascript
vue组件 keep-alive 和 transition 使用详解
2019/10/11 Javascript
react quill中图片上传由默认转成base64改成上传到服务器的方法
2019/10/30 Javascript
Vue 防止短时间内连续点击后多次触发请求的操作
2020/11/11 Javascript
Python3 能振兴 Python的原因分析
2014/11/28 Python
Python使用cx_Oracle调用Oracle存储过程的方法示例
2017/10/07 Python
Python针对给定字符串求解所有子序列是否为回文序列的方法
2018/04/21 Python
使用python将图片格式转换为ico格式的示例
2018/10/22 Python
python使用pandas处理大数据节省内存技巧(推荐)
2019/05/05 Python
Mac 使用python3的matplot画图不显示的解决
2019/11/23 Python
基于python判断目录或者文件代码实例
2019/11/29 Python
tensorflow 初始化未初始化的变量实例
2020/02/06 Python
Python使用进程Process模块管理资源
2020/03/05 Python
Django设置Postgresql的操作
2020/05/14 Python
基于python模拟TCP3次握手连接及发送数据
2020/11/06 Python
澳大利亚运动鞋零售商:The Athlete’s Foot
2018/11/04 全球购物
Myprotein西班牙官网:欧洲第一大运动营养品牌
2020/02/24 全球购物
自荐信要包含哪些内容
2013/11/06 职场文书
雷锋精神演讲稿
2014/05/13 职场文书
现场活动策划方案
2014/08/22 职场文书
2019如何书写演讲稿?
2019/07/01 职场文书
解决go在函数退出后子协程的退出问题
2021/04/30 Golang
Flask response响应的具体使用
2021/07/15 Python
pnpm对npm及yarn降维打击详解
2022/08/05 Javascript