2017-09-03 18 views
0

私はグローバル変数を設定し、それをさまざまな関数のトリガーとして使用したいと考えています。各ユーザーには個別のグローバル変数があります。これは、以前のメッセージデータを追跡し、会話を進めるために使用されます。問題は、各ユーザーに個別のグローバル変数をどのように管理できるかということです。私はそれをサーバーに展開した後、アプリケーションは実行されています。グローバル変数を変更しようとすると、この変数は変更をトリガーした単一のユーザーだけでなく、すべてのユーザーに適用されます。Pythonフラスコでグローバル変数を設定する方法は?

私はDBなしでPythonフラスコを使用しています。

ありがとうございます。

+0

「グローバル」と「ユーザーごと」は全く異なる2つのものです。 –

+0

検索するキーワードは「セッション」です。 –

答えて

0

あなたはこのためにグローバル変数を必要としないと真にグローバル変数を使用することは悪い習慣であるため、いつでも将来的にはそれらを必要としません。詳細については、このリンクを参照してくださいwhy are global variables evil?

今度は、gフラスコのモジュールは、同じユーザーからの複数の要求に耐えられるコンテキストを作成する必要があります。

各ユーザーには、変数が共有されず、値も共有されないように、アプリケーションの別のスレッドが作成されることを覚えておいてください。だから各ユーザのために異なったgがあるでしょうが、それは同じユーザからの複数の要求にわたって持続します。それが役に立てば幸い!

+0

ありがとうございます!これは私の問題を完全に解決しました。 –

+0

あなたは大歓迎です! –

1

あなたの質問を正しく理解しているかどうかは不明ですが、ユーザ名と値としてkeyをメッセージとして使用してグローバル辞書を作成することもできます。

ですから、辞書に変数を更新するたびにユーザー名に基づいて、それぞれの変数にアクセスすることができます(辞書のキー)

userMsg = {"John":"hello"} #existing user 
# update John's msg 
userMsg["John"] = "bye" 
# now userMsg is {"John":"bye"} 

# add new user if user does not exist 
userMsg["Mary"] = "Your Message Here" 
# now userMsg is {"John":"bye", "Mary":"Your Message Here"} 
+0

あなたの答えをありがとう! –

関連する問題