为什么我不能在 if 语句中将会话变量保存在 Flask 中?

Why can't I save a session variable in Flask in an if statement?

我对Flask中session的理解是,你可以把它保存在任何地方,随时随地访问。除了,它没有被保存。我正在使用 axios.get 从我的 jinja 文件中的脚本获取多个变量。我唯一能弄清楚如何设置多个的方法是在延迟后进行另一个 axios 调用。

我已经尝试解决这个问题大约 4 个小时了,但我所做的一切都无济于事。我最初没有 /saved 并在 getmethod 路线中做了“工作”,但后来我意识到它每次在 JS 中调用 axios.get 时都会完成工作。我试过在全局 x 中使用全局变量,x = jsdata,然后在 if session['name'] = x 之外使用...但它说 x 未定义。

编辑:刚试过 session.modified = True,但还是不行。

我的代码:

JS

btn = document.querySelector('.btn')
let newBoard = '';
btn.addEventListener('click', function(e) {
    e.preventDefault()
    
    
    newB()

axios.get(`/getmethod/${newBoard}`)
axios.get(`/getmethod/${clk.innerHTML}`)
axios.get(`/getmethod/${solved}`)
alert("You saved the game!")
setTimeout(() => {
    axios.get('/saved')
}, 1000);
})

function newB() {
    let board = document.querySelectorAll('input')

    for (let i = 0; i < board.length; i++) {

        if (board[i].value === '') {
            newBoard += '0'
        }
        else {
            newBoard += board[i].value
        }
    }
    return newBoard
}

烧瓶

@app.route('/getmethod/<jsdata>')
def get_javascript_data(jsdata):
    """Gets clock/board from javascript to save a game if logged in"""

    if len(jsdata) == 81:
        if "0" in jsdata:
            session['board'] = jsdata
        else:
            session['solved'] = jsdata

    if jsdata == "Easy" or jsdata == "Medium" or jsdata == "Hard":
        session['level'] = jsdata

    if ":" in jsdata:
        session['clock'] = jsdata

    return jsdata

@app.route('/saved')
... works with variables set in route above
...level = session.get('level', None)
...print(level) DOES NOT equal what was set in route above

我还没有弄清楚会话没有像我预期的那样保存是怎么回事,但我确实找到了一个使用 axios post 的解决方案,而不仅仅是 axios get。