在令牌认证的flask应用程序中从一个路由传递变量值到另一个路由



我有一个flask令牌身份验证应用程序,通过扩展flask jwt实现。

import random
import os
from flask import Flask, jsonify, request, session
from flask_cors import CORS
from flask_jwt_extended import create_access_token
from flask_jwt_extended import JWTManager
import json
app = Flask(__name__)
app.config["JWT_SECRET_KEY"] = "some secret key"
jwt = JWTManager(app)
CORS(app)
app.config['CORS_HEADERS'] = 'Content-Type'
secret_email = "xxxx@gmail.com"
secret_pass = "password"
@app.route("/")
def home():
return jsonify({"msg":"Hello, World!"})
@app.route("/login", methods=["POST"])
def login():
email = request.json.get("email", None)
password = request.json.get("password", None)
if email != secret_email or password != secret_pass:
return jsonify({"msg": "Bad username or password"}), 401
access_token = create_access_token(identity=email)
return jsonify(access_token=access_token)
@app.route("/configs")
def configs():
a = random.randint(10,30)
b = random.randint(1,5)
summ = a+b
return jsonify({"a":a,"b":b})
@app.route("/sumcollect")
def sumcollect():
return jsonify({"sum is":summ})

if __name__ == "__main__":
app.run(debug=False)

路由/configs中的summ变量需要在路由/sumcollect中访问。我尝试了会话变量。但是令牌身份验证和会话变量不能一起工作。在这种情况下是否有传递变量的方法?

注意:只是为这个添加了django标签,以防他们看到有一个解决方案。

在Flask中,可以使用redirect将变量从一个路由发送到另一个路由函数。重定向函数需要函数的url和其他路由需要的值。欲了解更多信息,请参考:https://sodocumentation.net/flask/topic/6856/redirect

@app.route("/sumcollect")
def sumcollect():
summ = request.args['summ']
return jsonify({"sum is":summ})
@app.route("/configs")
def configs():
a = random.randint(10,30)
b = random.randint(1,5)
summ = a+b
return jsonify({"a":a,"b":b}),redirect(url_for('sumcollect',summ=summ))

最新更新