flask全局变量一,视图间的参数传递

提出的问题:

flask视图间如何传递变量呢?开始我用的全局变量,如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from flask import Flask,request,render_template

app=Flask(__name__)

app.secret_key = '就得是要一个key' # 必须有
app.config['SESSION_TYPE'] = 'filesystem' # 必须有

start_num=0
span_num=5

@app.route("/fun1")
def fun1():
start_num=9
span_num=16

@app.route("/fun2")
def fun2():
print("start_num=",start_num) #此处start_num又变为0
print("span_num=",span_num]) #此处start_num又变为5

在执行视图fun2时, session[“start_num”]与session[“span_num”]的值又变为初始值了。
咋整呢?

网上找到一种办法是 session法。修改代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
from flask import Flask,request,render_template
from flask import session

app=Flask(__name__)

app.secret_key = '我的key'
app.config['SESSION_TYPE'] = 'filesystem'

session["start_num"]=0
session["span_num"]=5

@app.route("/fun1")
def fun1():
session["start_num"]=9
session["span_num"]=16

@app.route("/fun2")
def fun2():
print("session["start_num"]",session["start_num"]) #此处session["start_num"]又变为9
print("session["span_num"]",session["span_num"]) #此处session["start_num"]又变为16
还有一种办法就是把两个临时值传到数据库,或保存为json数据,存入文件中,程序不难,但是如果参数频繁改变的话,要反复读写文件就不好玩了。