問題タブ [django-sessions]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - django:現在のセッションの有効期限を更新する方法は?
ユーザーがログインしています。リクエストから受け取ったセッションの有効期限を延長/更新するにはどうすればよいですか? 前もって感謝します!
django - AttributeError:'WSGIRequest'オブジェクトに属性'session'がありません
このエラーはランダムに発生し続け、django.wsgiファイルに触れると、数時間後に再び発生するように修正されます。私は何をすべきか迷っています。私のmiddleware_classesは次のとおりです。
「ifrequest.session」ステートメントを実行すると、Facebookミドルウェアで常にエラーが発生します。ありがとう
python - Django: ブラウザーの [戻る] ボタンを管理するためのセッション変数の管理
かなり安全である必要がある Web ベースの模擬試験紙を作成しています。
ニーズは次のとおりです。 各質問は 1 回だけ試行して回答できます。すべて複数選択問題です。質問に回答して送信ボタンを押すと、そのセッションは期限切れになり、戻るボタンやその他の方法で同じ質問が表示されてはなりません。
ブラウザがクラッシュしたり、システムがクラッシュした場合、学生は、最後に試行され、まだ回答も提出もされていない問題に戻ることができなければなりません。
Djangoで実装する際に採用する最善の戦略は何でしょうか. 送信ボタンが押されたら、どのようにしてセッションを自動的に強制終了しますか? また、戻るボタンを押しても、試行して回答した質問にアクセスできないようにするにはどうすればよいでしょうか?
グーグルで検索してみましたが、より適切なガイドとなるリソースを示すことができません。django セッションのドキュメントを見たことがありますが、これを行う正しい方法を知っているかどうかはわかりません。どんな提案でも役に立ちます
django - アップロードしたファイルの一時保管の扱い方
私のdjangoアプリケーションでは、いくつかの条件付きパラメーターを使用して、複数のステップで登録しています。このため、フォームからのデータをセッションに保存することを考え出しました。残念ながら、セッションは pickle を使用してデータをシリアル化しますが、これはファイルのシリアル化をサポートしておらず、
PicklingError: Can't pickle <type 'cStringIO.StringO'>: attribute lookup cStringIO.StringO failed
. この問題を回避するには?次のすべてのビューに画像を変数として送信するか、GET パラメーターとして送信するか、他の方法で送信する必要がありますか? 問題はかなり明白なので、サンプル コードが必要かどうかはわかりません。
python - Django でのセッションの使用
Django でセッションを使用して、ログイン ユーザー情報やその他の情報を保存しています。私は Django セッション Web サイトを読んでいますが、まだいくつか質問があります。
ジャンゴのウェブサイトから:
デフォルトでは、Django はセッションをデータベースに保存します ( model を使用
django.contrib.sessions.models.Session
)。これは便利ですが、一部のセットアップでは、セッション データを別の場所に保存する方が高速であるため、セッション データをファイル システムまたはキャッシュに保存するように Django を構成できます。
また:
永続的なキャッシュ データの場合は、 に設定
SESSION_ENGINE
しdjango.contrib.sessions.backends.cached_db
ます。これはライトスルー キャッシュを使用します。キャッシュへのすべての書き込みは、データベースにも書き込まれます。セッション読み取りは、データがまだキャッシュにない場合にのみデータベースを使用します。
どちらを使用するのに適した経験則はありますか? cached_db
最良の場合、データはキャッシュ内にあり、最悪の場合はデータベース内にあるため、常により良い選択であるように思われます。1 つの欠点は、memcached をセットアップする必要があることです。
デフォルトで
SESSION_EXPIRE_AT_BROWSER_CLOSE
は、 は に設定されていますFalse
。これは、セッション Cookie が の期間、ユーザーのブラウザに保存されることを意味しますSESSION_COOKIE_AGE
。ユーザーがブラウザーを開くたびにログインする必要がないようにする場合は、これを使用します。
ブラウザを閉じてセッションを期限切れにし、年齢を与えることは可能ですか?
値が整数の場合、非アクティブ状態が数秒続くと、セッションは期限切れになります。たとえば、呼び出し
request.session.set_expiry(300)
により、セッションは 5 分で期限切れになります。
「非アクティブ」とは何ですか?
データベース バックエンドを使用している場合は、セッション データが
django_session
データベース テーブルに蓄積される可能性があり、Django は自動パージを提供しないことに注意してください。したがって、期限切れのセッションを定期的にパージするのはあなたの仕事です。
つまり、セッションの有効期限が切れても、データベースにはまだレコードが残っています。「データベースをパージする」ためのコードを正確にどこに置くのでしょうか? たまに(1時間ごとに)データベースを通過し、期限切れのセッションを削除するには、別のスレッドが必要になると思います。
python - セッションキーが設定されているかどうかを確認します
Django で比較的単純なショッピング カートを作成しようとしています。にカートを収納していrequest.session['cart']
ます。したがって、何かが追加されたときに、このセッションのデータにアクセスする必要があります。ただし、セッションがまだ設定されていない場合は、エラーが発生せずにアクセスできません。セッションが存在しない場合に設定できるように、セッションが設定されているかどうかを確認する方法はありますか?
python - Djangoでのユーザー認証に基づいたモデルフィールドの値の設定
ユーザーがログインしているかどうかに基づいて、Django/Pythonアプリケーションのフィールドを選択的に処理しようとしています。基本的に、私は次のようなモデルを持っています:
私がやりたいのは、ユーザーがログインしている場合(および、いくつかのアクセス許可バックエンドに対するテストに基づいてこのリソースにアクセスできる場合)、ファイル属性を1つの値に設定し、ユーザーがログインしていない場合は別の値に設定することです。したがって、クライアントコードがResource.fileにアクセスしようとすると、ユーザーが「http://mysite.com/dummy_resource_for_people_without_access」にログインしていない場合、次のようになります。ただし、ユーザーがログインしてアクセス許可のテストに合格した場合、resource.fileの値は、実際にはそのリソースの実際のURLになります(そのリソースにアクセスするためのセキュリティキーなどを含む)。
私が読んだことから、現在ログインしているユーザーは、ビュー関数からモデルへのリクエストコンテキストを介して渡すことによってのみ考慮できるようです。ただし、上記のユースケースでは、特別な関数を呼び出すためのクライアントコードを必要とせずに、モデル内のアクセスをより厳密に制御しようとしています。
django-sessions - Djangoでは、現在ログインしているユーザーの他のアクティブなセッションをすべて見つけるにはどうすればよいですか?
ユーザーが他のコンピューターからもログインしていることを通知し、これらの他のセッションを閉じるオプションを付けたいです。残念ながら、データベースを直接ハッキングせずに Django でそれを行う方法はすぐにはわかりません。
python - Django:ミドルウェアでセッションまたはCookieを取得する
ミドルウェア内で現在のセッションまたはCookieを取得できますか?
試しましたが、次のようになりました。
django - 巨大な Django セッション テーブル、通常の動作またはバグ?
django_session
おそらくこれは完全に正常な動作ですが、テーブルが必要以上に大きいように感じます。
まず、次のクリーンアップ コマンドを毎日実行して、セッションの期限切れがサイズの原因にならないようにします。
数字:
- 毎日約 5000 のユニークな訪問者 (ボットを除く) がいます。
- は
SESSION_COOKIE_AGE
デフォルトの 2 週間に設定されています - テーブルには1,000,000を少し超える行があります
したがって、Django はサイトにアクセスするすべてのボットのセッション キーも生成し、ボットは Cookie を保存しないため、継続的に新しい Cookie を生成すると推測しています。
でも・・・これは正常な動作でしょうか?Django が匿名ユーザーのセッションを生成しない、または少なくとも...セッションを使用していないユーザーのセッションを生成しないようにする設定はありますか?