flask中jinja2设置使用全局变量
来源:互联网 发布:h3c交换机查看端口状态 编辑:程序博客网 时间:2024/05/18 15:04
最近一前端的小伙给我说,他想让所有模板使用同一个变量,每个模板对其值做了修改,其他模板拿到的变量也得到相应的改变,说白了就是jinja2操作全局变量,这个可以使用cookie来实现,但是他不想做相应的js操作,然后问我有什么办法吗?
我考虑之后想到jinja2可以设置全局函数,可以让全局函数来操作变量,实现代码如下。
目录结构如下
globaltest.py
#coding:utf-8from flask import Flask, render_templateapp = Flask(__name__)global_var = [0]#定义一个全局变量,存在相应的值def set_var(var):#设置全局变量 global_var[0] = var return ""def get_var():#获取全局变量 return global_var[0]#使用flask对jinja2环境变量操作,来完成jinja2全局函数的配置app.add_template_global(set_var, 'set_var')app.add_template_global(get_var, 'get_var')@app.route('/get')def hello_world(): return render_template("get.html")@app.route("/set")def set_var(): return render_template("set.html")if __name__ == '__main__': app.run(debug=True)
get.html
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body> {{ get_var() }}</body></html>
set.html
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body> set var ->100{{ set_var(100) }}</body></html>
结果
第一http://127.0.0.1:5000/get 显示的结果为0第二http://127.0.0.1:5000/set 显示的结果为set var ->100第三刷新第一次打开的页面 显示的结果为100
源码地址:http://download.csdn.net/detail/guoqianqian5812/9887615
阅读全文
0 0
- flask中jinja2设置使用全局变量
- flask之jinja2中使用字典、列表、方法等变量
- Flask的jinja2模板中自定义过滤器的使用
- Flask中的Jinja2模板使用
- flask jinja2
- flask--jinja2
- Flask Jinja2模板
- Flask jinja2中如何调外链,跳到百度
- simulink中设置使用全局变量
- Flask web 开发 Jinja2 模板
- Flask-Jinja2模板学习总结
- web.py中使用Jinja2问题汇总
- [Webpy]在webpy中使用jinja2模板
- 在django中使用jinja2模版引擎
- Pycharm中创建的flask项目,不能关联Jinja2模版的问题解决
- Pycharm中创建的flask项目,不能关联Jinja2模版的问题解决
- flask.jinja2模板中自动转义和取消转义的分析
- flask框架中jinja2传递参数和html,js文件接收参数
- 对平衡二叉树的增加和删除
- <meta http-equiv="X-UA-Compatible" content="ie=edge,chrome=1">
- 卡布列克常数
- 统计字符串中每个小写字母的个数
- What is Machine Learning
- flask中jinja2设置使用全局变量
- php简单分页类
- 微信在线调试器
- curl传输神器
- 关于ajax轮询和ajax长轮询实践与体…
- 关于mysql表损坏的总结
- 第十六周OJ-Q134解题方法
- SpringMVC简介
- git学习笔记