WebアプリをPythonAnywhereのようなクラウドサービス上で動作させると、PC上ではきちんと動作していたにもかかわらず、思いもよらない動きをすることがあります。
JavaやPHP、Pythonなどで作成されたWebアプリは、PC上の環境では言語仕様通りの動作をするが、Web環境では言語のクラス変数やインスタンス変数、あるいはグローバル変数は、マルチプロセッシングやマルチスレッディングの影響を受け、言語仕様通りの動作をしません。使えるのは関数やメソッド内のローカル変数だけです。
Webアプリが複数のメソッドや関数から成る場合、Webアプリは複数の独立したスレッドで実行するように配置されますので、上記のような現象が起きます。
これはWebアプリが多数の端末からアクセスされることに配慮した、性能を上げるためのやむを得ない処置と云えます。
メソッドや関数間の共通データを必要とするWebアプリは、クラス変数やインスタンス変数、あるいはグローバル変数ではなく、言語外の一種のスタティック変数であるセッション変数やキャッシュ変数などを、ローカル変数と組み合わせて使用する必要があります。