首页 > 解决方案 > 烧瓶网络应用程序会话无法正常工作

问题描述

我正在尝试使用 Flask 和套接字创建一个聊天应用程序,灵感来自于看到 Tech with Tim 创建它。我有一个问题,由于某种原因,出现的名称是主屏幕中输入的最新名称。主要的代码片段是:

@app.route("/getName") def getName(): output = {"name": ""}
    if NAME_KEY in session:
        output["name"] = session[NAME_KEY]
    print("output", output)
    return jsonify(output)

一开始的作用

@app.route("/", methods = ["POST", "GET"])
def sessions():
if request.method == "POST":
        name = request.form["usernameInput"]
        if len(name) >= 1:
            session[NAME_KEY] = name
            return mainPage()
    return render_template("usernamePage.html")

javascript

var form = $("form").on("submit", async function(e) {
          e.preventDefault()
          // let user_name = $("input.username").val();
          // get the name from flask backend, convert it into json and use it
          let dictionary = await fetch("/getName");
          let response = await dictionary.json();
          let user_name = response.name;
          let user_input = $("input.messageInput").val();
          socket.emit("my event", {
            userName : user_name,
            message : user_input
          } )
          $("input.message").val("").focus()
        } )

如果您愿意,我可以发送更多代码。

以防万一我不清楚,这里有显示发生了什么的图像。在一个选项卡上使用它。 图像一

在其他选项卡上使用它。 图像二

但是现在当我在原始选项卡上使用它时,名称是新名称,而不是原始名称。 图像三

标签: javascriptpythonsocketsflask

解决方案


推荐阅读