我正在尝试设置一个 API 登录,当登录成功时,它会返回一个 JWT 以及通过 POST 请求登录时发送的名字/姓氏。我的问题是我无法找出一种将名字/姓氏变量返回到另一个类和函数的方法。这是我的代码:
@app.route('/login', methods=['POST'])
def login():
if not request.is_json:
return jsonify({"msg": "Missing JSON in request"}), 400
username = request.json.get('username', None)
password = request.json.get('password', None)
client_fname = request.json.get('Client First Name', None)
client_lname = request.json.get('Client Last Name', None)
if not username:
return jsonify({"msg": "Missing username parameter"}), 400
if not password:
return jsonify({"msg": "Missing password parameter"}), 400
if username != USER_DATA.get(username) and password not in USER_DATA[username]:
return jsonify({"msg": "Bad username or password"}), 401
access_token = create_access_token(identity=username)
return jsonify(access_token=access_token), 200, PrivateResource.sendData(self, client_fname, client_lname)
class PrivateResource(Resource):
@app.route('/protected', methods=['GET'])
@jwt_required
def sendData(self, client_fname, client_lname):
return mysqldb.addUser("{}".format(client_fname),"{}".format(client_lname))
我想返回client_fname
和client_lname
,这样我就可以将它们与sendData()
一起使用。如何实现这一目标而不出现 json 中的 unicode 或传递变量的问题?
最佳答案
我认为你需要的是一个 session ,然后你可以做这样的事情-
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST']
session['username'] = request.form['user']
return redirect(url_for('home'))
正在准备家庭使用-
@app.route('/home')
def home():
if 'username' in session:
return render_template("index.html", name=session['username'])
希望这有帮助
关于python - 如何返回 JSON 请求输入并在另一个函数中使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50708061/