Python 如何返回JSON请求输入并在另一个函数中使用它?

Python 如何返回JSON请求输入并在另一个函数中使用它?,python,mysql,json,flask,Python,Mysql,Json,Flask,我试图设置一个API登录,当登录成功时,它返回一个JWT和从POST请求发送的登录名。我的问题是,我无法找到一种将名字/姓氏变量返回给另一个类和函数的方法。这是我的代码: @app.route('/login', methods=['POST']) def login(): if not request.is_json: return jsonify({"msg": "Missing JSON in request"}), 400 username = requ

我试图设置一个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\u fname
client\u fname
,这样我就可以将它们与
sendData()
一起使用。如何实现这一点,而不存在来自json的unicode或传递变量的问题

我想你需要的是一个会议,然后你可以做这样的事情-

@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'])

希望这有帮助

您可以使用会话来存储跨函数访问所需的变量。将这些添加到登录中

session['client_fname'] = request.json.get('Client First Name', None)
session['client_lname'] = request.json.get('Client Last Name', None)
并通过以下方式从sendData访问它:

return mysqldb.addUser("{}".format(session['client_fname']),"{}".format(session['client_lname']))

希望这能回答您的问题。

尝试一下,但我得到了
KeyError:“client\u fname”
是request.json。get('client First Name',None)是否可能为空?