文章目录
一、Flask的闪现
需求:比如我们有个页面x1,然后我们访问这个页面,页面会生成一个消息,但是这个消息不在x1页面显示,我们用户访问第二个页面x2,然后刚刚生成的消息显示在x2这里
方法1:使用session
from flask import Flask, session
app = Flask(__name__)
app.secret_key='adassasafsa'
@app.route('/x1/')
def x1():
session['msg'] = '哈哈哈哈哈'
return 'x1函数'
@app.route('/x2/')
def x2():
msg = session.pop('msg')
return msg
if __name__ == '__main__':
app.run(debug=True)
运行,x2页面的结果
方法2:flash模块
from flask import Flask, flash, get_flashed_messages,session
app = Flask(__name__)
app.secret_key='adasasa'
@app.route('/x1/')
def x1():
flash('哈哈哈哈')
return 'x1函数'
@app.route('/x2/')
def x2():
msg = get_flashed_messages()
print(msg)
return 'x2函数'
if __name__ == '__main__':
app.run(debug=True)
注意:
- 此方式基于session,必须配置好session的secret_key
- 此方式效果同上,但是此方式如果连续访问多次x1,那么访问x2的时候会显示多次结果的列表,但是只要访问一次x2会将列表的信息都拿出来,再访问x2结果为空列表
连续访问两次x1,第一次访问x2
第二次访问x2
二、Flask的蓝图
功能1:创建合理的目录
flask就相当于我们对于大型的flask项目,创建合理的文件夹,例如创建一个新项目
各文件的内容如下:
在view文件夹创建两个视图文件test1.py和test2.py文件
再修改init文件,将创建的两个蓝图和init关联起来,相当于init里负责分发视图函数
进入manage.py点击运行,即可访问这些网址
功能2:添加路由前缀
给每一个视图的url前加入自己的前缀
点击运行
功能3:局部装饰器
在test1文件里加入一个before_request函数
运行
不会影响test2的视图函数
功能4:每个蓝图可以写自己的模板文件和静态文件
但是init文件寻找模板和静态文件的顺序:先去init的app目录找,找不到对应的文件再去从上往下的蓝图里的模板和静态资源找