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 相关文章推荐
使用Nginx+uWsgi实现Python的Django框架站点动静分离
Mar 21 Python
Python自动化运维之IP地址处理模块详解
Dec 10 Python
Python实现将多个空格换为一个空格.md的方法
Dec 20 Python
python基于paramiko将文件上传到服务器代码实现
Jul 08 Python
python计算导数并绘图的实例
Feb 29 Python
Django 后台带有字典的列表数据与页面js交互实例
Apr 03 Python
使用Python实现NBA球员数据查询小程序功能
Nov 09 Python
Python3.9最新版下载与安装图文教程详解(Windows系统为例)
Nov 28 Python
python 视频下载神器(you-get)的具体使用
Jan 06 Python
史上最详细的Python打包成exe文件教程
Jan 17 Python
python 基于DDT实现数据驱动测试
Feb 18 Python
Python使用plt.boxplot()函数绘制箱图、常用方法以及含义详解
Aug 14 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
全国FM电台频率大全 - 17 湖北省
2020/03/11 无线电
PHP异常Parse error: syntax error, unexpected T_VAR错误解决方法
2014/05/06 PHP
PHP获取当前页面URL函数实例
2014/10/22 PHP
基于php的微信公众平台开发入门实例
2015/04/15 PHP
PHP输出Excel PHPExcel的方法
2018/07/26 PHP
dropdownlist之间的互相联动实现(显示与隐藏)
2009/11/24 Javascript
jquery 结合C#后台的数组对文章的关键字自动添加链接的代码
2011/07/15 Javascript
JS实现字体选色板实例代码
2013/11/20 Javascript
点击A元素触发B元素的事件在IE8下会识别成A元素
2014/09/04 Javascript
js实现简单锁屏功能实例
2015/05/27 Javascript
jQuery插件ajaxFileUpload使用实例解析
2016/10/19 Javascript
简单实现js菜单栏切换效果
2017/03/04 Javascript
JS模拟实现哈希表及应用详解
2018/05/04 Javascript
微信小程序上传图片到php服务器的方法
2019/05/23 Javascript
Vue中错误图片的处理的实现代码
2019/11/07 Javascript
jQuery实现聊天对话框
2020/02/08 jQuery
基于javascript处理nginx请求过程详解
2020/07/07 Javascript
如何用JS模拟实现数组的map方法
2020/07/30 Javascript
[14:19]2018年度COSER大赛-完美盛典
2018/12/16 DOTA
python连接MySQL、MongoDB、Redis、memcache等数据库的方法
2013/11/15 Python
Python基础之函数用法实例详解
2014/09/10 Python
使用Python的Django框架结合jQuery实现AJAX购物车页面
2016/04/11 Python
Python网络爬虫神器PyQuery的基本使用教程
2018/02/03 Python
Python实现的计算器功能示例
2018/04/26 Python
Python处理菜单消息操作示例【基于win32ui模块】
2018/05/09 Python
解决Django中多条件查询的问题
2019/07/18 Python
在django中实现页面倒数几秒后自动跳转的例子
2019/08/16 Python
Python如何执行精确的浮点数运算
2020/07/31 Python
Python 删除List元素的三种方法remove、pop、del
2020/11/16 Python
品恩科技软件测试面试题
2014/10/26 面试题
教师的实习自我鉴定
2013/12/17 职场文书
写给老师的保证书
2015/05/09 职场文书
垂直极限观后感
2015/06/08 职场文书
nginx里的rewrite跳转的实现
2021/03/31 Servers
苹果M1芯片安装nginx 并且部署vue项目步骤详解
2021/11/20 Servers
使用Django框架创建项目
2022/06/10 Python