У меня есть очень простое приложение для колб, которое я развернул в Heroku.Я пытаюсь определить переменную, которую я могу изменить при выполнении определенной функции.Например, если у меня есть переменная logged_in=True
, я хочу иметь возможность изменить ее на logged_in=False
при выполнении маршрута @app.route('/logout')
.Вот код:
import os
from flask import Flask, session, request, redirect, url_for, flash, g
from flask import render_template
from flask_session import Session
app = Flask(__name__)
app.secret_key = b'_5#y2L"F4Q8z\n\xec]/'
# Configure session to use filesystem
app.config["SESSION_PERMANENT"] = False
app.config["SESSION_TYPE"] = "filesystem"
app.config['logged_in']=True
Session(app)
# Redirect to /login route
@app.route('/')
def index():
return redirect(url_for("login"))
# Open main login page
@app.route("/login", methods=["POST","GET"])
def login():
return render_template("login.html")
# Verify login credentials
@app.route("/login_check",methods=["POST"])
def login_check():
return redirect(url_for("main_page"),code=307) if app.config['logged_in']==True else render_template("not_logged_in.html")
@app.route("/main_page", methods=["POST"])
def main_page():
return render_template("main_page.html",name="Main page")
@app.route("/log_out", methods=["POST"])
def log_out():
app.config['logged_in']=False
return redirect(url_for("login"))
if __name__ == '__main__':
app.run(debug=True)
Когда я запускаю приложение локально, значение logged_in
устанавливается на False
при выполнении logout
и не изменяется, если login
запускается снова,Однако при развертывании приложения в Heroku значение logged_in
возвращается True
при повторном срабатывании login
(странно, иногда это значение меняется, но не всегда).
Как можноЯ установил значение logged_in
, чтобы оно не изменилось, пока я не обновлю его функцией?Я пытался использовать session.config['logged_in']
вместо app.config['logged_in']
, но у меня была та же проблема.В идеале я хочу, чтобы значение было уникальным для каждой сессии.
Спасибо