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时间模块中的datetime模块
Jan 13 Python
常见python正则用法的简单实例
Jun 21 Python
利用python实现xml与数据库读取转换的方法
Jun 17 Python
Python数据结构与算法之完全树与最小堆实例
Dec 13 Python
python web基础之加载静态文件实例
Mar 20 Python
python-docx修改已存在的Word文档的表格的字体格式方法
May 08 Python
python中csv文件的若干读写方法小结
Jul 04 Python
用python打印1~20的整数实例讲解
Jul 01 Python
pycharm 更改创建文件默认路径的操作
Feb 15 Python
PyCharm中关于安装第三方包的三个建议
Sep 17 Python
django中cookiecutter的使用教程
Dec 03 Python
python实战之用emoji表情生成文字
May 08 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+XML 制作简单的留言本 图文教程
2009/11/02 PHP
php echo 输出字符串函数详解
2010/05/13 PHP
php对二维数组按指定键值key排序示例代码
2013/11/26 PHP
CodeIgniter中实现泛域名解析
2014/07/19 PHP
php数组添加与删除单元的常用函数实例分析
2015/02/16 PHP
分享微信扫码支付开发遇到问题及解决方案-附Ecshop微信支付插件
2015/08/23 PHP
php常量详细解析
2015/10/27 PHP
使用ThinkPHP生成缩略图及显示
2017/04/27 PHP
thinkPHP5框架接口写法简单示例
2019/08/05 PHP
基于JQuery的简单实现折叠菜单代码
2010/09/15 Javascript
jQuery在html有效在jsp无效的原因及解决方法
2013/08/02 Javascript
Select标签下拉列表二级联动级联实例代码
2014/02/07 Javascript
关于Javascript加载执行优化的研究报告
2014/12/16 Javascript
JS动态修改图片的URL(src)的方法
2015/04/01 Javascript
Javascript的表单验证-初识正则表达式
2016/03/18 Javascript
JavaScript几种数组去掉重复值的方法推荐
2016/04/12 Javascript
jQuery插件简单学习实例教程
2016/07/01 Javascript
js拼接html字符串的注意事项
2016/10/13 Javascript
js canvas仿支付宝芝麻信用分仪表盘
2016/11/16 Javascript
Bootstrap缩略图与警告框学习使用
2017/02/08 Javascript
vue 修改 data 数据问题并实时显示的方法
2018/08/27 Javascript
node中的cookie的具体使用
2018/09/13 Javascript
浅谈Vue数据响应
2018/11/05 Javascript
[05:22]DOTA2 2015国际邀请赛中国区预选赛首日TOP10
2015/05/26 DOTA
Python中字符串对齐方法介绍
2015/05/21 Python
Python+matplotlib实现华丽的文本框演示代码
2018/01/22 Python
使用Python写一个量化股票提醒系统
2018/08/22 Python
详解Python3除法之真除法、截断除法和下取整对比
2019/05/23 Python
Python 自动登录淘宝并保存登录信息的方法
2019/09/04 Python
Python性能分析工具Profile使用实例
2019/11/19 Python
python新手学习使用库
2020/06/11 Python
Python文件操作及内置函数flush原理解析
2020/10/13 Python
python中的测试框架
2020/11/13 Python
27个经典Linux面试题及答案,你知道几个?
2014/03/11 面试题
社区平安建设方案
2014/05/25 职场文书
授权委托书样本及填写说明
2014/09/19 职场文书