Вот мой упрощенный тестовый код:
Код: Выделить всё
from flask import Flask, request
from werkzeug.local import Local
import threading
app = Flask(__name__)
local_data = Local()
@app.route('/')
def index():
if local_data.data:
# I don't know why new request without token will get token and return here.
return local_data.data
local_data.data = request.headers.get('token')
return local_data.data
if __name__ == "__main__":
app.run()
Я ожидаю, что только первый запрос будет содержать токен, а остальные запросы должны возвращать None, поскольку в их локальном потоке ничего нет.
Однако в ходе непрерывных наблюдений я обнаружил, что многие запросы успешно извлекали значение, хранящееся в local_data.data, это означает, что local_data здесь не работает.
Я не знаю почему, а GPT говорит, что в моем коде не должно быть ошибок...
Подробнее здесь: https://stackoverflow.com/questions/787 ... cted-value