2

ajax リクエストを使用する Flask アプリケーションがあり、このリクエストは true/false 応答を返す必要があります。ユーザーが認証コードを入力し、認証コードが必要なものと一致するか、セッションに既に存在する場合、応答は true になり、コードがセッションに追加されて保存されます。そうでない場合は、単に false を返します

@app.route('/auth-ajax', methods=['POST'])
def auth(): 
    result_id = request.form.get('result_id', 'true')
    result = load_result(result_id)

    if result:
        auth = result['auth_hash']
        auth_input = request.form.get('auth_input', '')
        if (session.get('auths').get(result_id) != auth and auth_input != auth):
            return 'false'

    #else, save new authorization into session
    session['auths'][result_id] = auth

    # return true
    return 'true'

ただし、セッションは期待どおりに保存されません。これは私にとって初めての Python アプリなので、学習しながら学んでいます。私が理解していることから、単に「true」または「false」を出力するだけでなく、Flaskで応答を作成する必要があります.応答を作成すると、変更が保存されないため、セッションが保存されます。私が使用した唯一の応答関数はビュー用の render_template() ですが、ビューではなく、承認が付与されたかどうかを確認するための単純な true/false (おそらく HTTP ステータス応答) が必要です。どうすればこれを行うことができますか?

4

1 に答える 1

1

問題が見つかりました。追加するだけsession.modified = Trueです。とても簡単。

于 2013-05-18T02:17:46.297 に答える