2017-09-29 6 views
1

私はDjango Appを構築しています。ユーザーのセッションを管理するためにあなたの助けが必要です。1人のユーザーのためのグローバル変数

今のところ、私のindex.htmlは私のログインページです。これはフォーム(ユーザー名、パスワード)です。 ユーザーがログインをクリックすると、フォームが取得され、ユーザーのSQLテーブルと比較され、一致する場合、グローバル変数(firstname1、lastname1)がprofil_page.htmlにレンダリングされます。私はちょうど(username1、password1)でログインしてみましょう。

別のコンピュータで別のログイン(username2、password2)を試してみると、profil_page.htmlが表示され、自分のページに(firstname2、lastname2)が表示されます。

問題は、私が最初にログインしたコンピュータ(username1、password1)に戻ると、ページが更新され、ページ上に(firstname2、lastname2)が表示されます。

私はそれがセッションの問題だと思います。私は自分のアプリケーション全体ではなく、1つのコンピュータのための私のグローバル変数をしたい。

ありがとうございます。

+0

あなたはこれを読んでいますか:https://docs.djangoproject.com/en/1.11/topics/http/sessions/? –

+0

Djangoは安定したテスト済みのユーザー/認証/セッションシステムを持っていますので、そのまま使用してください。 –

+0

ああ、はい:長時間実行しているマルチスレッド/マルチプロセスアプリケーションでグローバルを使用しない理由を理解していると思いますか?同じプロセスで複数のリクエストが処理されるため、ゴーブルを書き込み/変更するビューが呼び出されるたびに、以前の値が上書きされます。複数の並行プロセスがあり、任意のユーザー要求がプロセスのいずれかによって処理される場合は、さらに面白いです。 –

答えて

1

ユーザーごとに変数が必要な場合は、セッション変数を作成します。そうすれば、ユーザーセッションが終了しない限り同じままになります。

request.session['name'] = 'hello' 
+1

はい、セッションは大文字ではありません。 –

+0

@ダニエルありがとうございます。修正しました。私はそれらを使ってからしばらくしています。 – hspandher

関連する問題