烧瓶型号:

>>> flask.__version__
'0.12.2'

我不想更新某个URL的过期时间。
目前,我使用以下方法设置会话过期时间:
session.permanent = true
app.permanent_session_lifetime = timedelta(minutes=int(10))

我有一个状态页,它使用ajax方法每分钟自动刷新一次,只获取数据。
在这种情况下,我不想重置会话过期时间。
有办法吗?
编辑:
我的代码:
from datetime import timedelta
from flask import Flask
from flask import session

APP = Flask(__name__, static_url_path='', static_folder='templates')

def create_user_session(user_accountid, auth_token):
    session['token'] = auth_token
    session['user_accountid'] = user_accountid

def update_session():
    session.permanent = True
    APP.permanent_session_lifetime = timedelta(minutes=10)
    session.modified = True

@APP.route('/batch_status', methods=['GET'])
def view_status():
    create_user_session(1, "****")
    update_session()
    return "Session Change"

@APP.route('/batch_status_json', methods=['GET'])
def retrieve_status():
    return "Session No Change"

if __name__ == '__main__':
    APP.secret_key = "My Precious Key"
    APP.run(host='0.0.0.0', debug=True, port=8000)

我不想更改batch_status_json调用中的会话过期时间,但在调用时会自动更改。
编辑2:
监控器
from datetime import timedelta
from flask import Flask
from flask import session
from status import RETRIEVE_STATUS

APP = Flask(__name__, static_url_path='', static_folder='templates')

APP.register_blueprint(RETRIEVE_STATUS)
def create_user_session(user_accountid, auth_token):
    session['token'] = auth_token
    session['user_accountid'] = user_accountid

def update_session():
    session.permanent = True
    APP.permanent_session_lifetime = timedelta(minutes=10)
    session.modified = True

@APP.route('/batch_status', methods=['GET'])
def view_status():
    create_user_session(1, "****")
    update_session()
    return "Session Change"

if __name__ == '__main__':
    APP.secret_key = "My Precious Key"
    APP.run(host='0.0.0.0', debug=True, port=8000)

状态.py:
from flask import Blueprint

RETRIEVE_STATUS = Blueprint('retrieve_status', __name__)
@RETRIEVE_STATUS.route('/batch_status_json', methods=['GET'])
def retrieve_status():
    return "Session No Change"

最佳答案

如果会话被标记为已修改或设置了SESSION_REFRESH_EACH_REQUEST选项,则设置cookies。默认情况下,该选项为true。
在烧瓶配置中尝试设置

SESSION_REFRESH_EACH_REQUEST = False

从文档中:
会话刷新每个请求
控制cookie是否与一起发送
session.permanent为true时的每个响应。发送cookie
每次(默认)都可以更可靠地阻止会话
即将过期,但使用更多带宽。非常任会议不是
影响。
默认值:true

10-06 13:53