【问题标题】:Why can't I save a session variable in Flask in an if statement?为什么我不能在 if 语句中保存 Flask 中的会话变量?
【发布时间】:2020-10-19 02:32:10
【问题描述】:

我对 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

【问题讨论】:

    标签: javascript session flask axios


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-07
      • 1970-01-01
      • 2023-02-10
      • 1970-01-01
      • 2020-03-13
      • 2021-11-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多