Django Academy · レッスン

Session Framework

1人の訪問者に紐づくデータを保存します

レッスン 1/413 ステップ

「Session Framework」はCoddyKit上の無料Django Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDjango Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Django Academyコースには全4レッスンが含まれています。

セッションが必要な理由

HTTPはリクエストの間でユーザーの情報を保持しません。セッションフレームワークを使うと、Djangoはページの読み込みをまたいで訪問者を記憶できるため、ログイン状態やカートの内容を維持できます。🍪

セッションに保存されるもの

セッションは、1人の訪問者に紐づいた小さなデータの入れ物です。Djangoはセッションをサーバー上に保持し、ブラウザーには再び見つけるためのキーだけを渡します。

セッションCookie

Djangoはブラウザーにsessionidという名前のCookieを設定します。このCookieに保存されるのはセッションキーだけで、非公開データは含まれません。データは安全にサーバー上へ保持されます。

すでに有効になっている

新しいプロジェクトではSessionMiddlewareが有効になっているため、追加設定なしですぐにセッションを利用できます。

MIDDLEWARE = [
    'django.contrib.sessions.middleware.SessionMiddleware',
]

セッションアプリ

django.contrib.sessionsアプリはINSTALLED_APPSに含まれており、migrateを実行するとセッションデータを保持するテーブルが作成されます。

データの保存場所

Djangoはデフォルトでセッションをデータベースに保存します。各行には、その訪問者のキー、エンコードされたデータ、有効期限が格納されます。

バックエンドを選ぶ

SESSION_ENGINEで保存先を選択できます。Cacheやcached_dbバックエンドを使うと、セッションをメモリに保持できるため、アクセスの多いサイトで読み取りが大幅に高速になります。

SESSION_ENGINE = 'django.contrib.sessions.backends.cache'

セッションにアクセスする

どのビューでも、セッションはrequest.sessionとしてリクエストから利用できます。読み書きできる通常のPython辞書のように動作します。

def home(request):
    request.session['theme'] = 'dark'
    return render(request, 'home.html')

セッションには有効期限がある

セッションは永遠には続きません。SESSION_COOKIE_AGEで有効期間を秒単位で設定でき、デフォルトでは2週間後に訪問者のセッションが無効になります。

SESSION_COOKIE_AGE = 1209600  # two weeks

古いセッションを削除する

期限切れの行はデータベースに残り続けます。定期的にclearsessionsを実行して古いデータを削除し、テーブルを整理しましょう。

python manage.py clearsessions

匿名ユーザーとログインユーザー

セッションは匿名の訪問者とログイン済みの訪問者の両方を追跡します。そのため、ゲストはアカウントを作成する前でもカートに商品を入れられます。

確認問題

セッションデータが実際にどこに保存されるのか確認しましょう。

まとめ

セッションフレームワークについて学びました。リクエストをまたいで訪問者を記憶し、データをサーバー側に保存し、SessionMiddlewareによって自動的に動作します。次はセッションの読み書きを学びます。✅

無料で開始

AI チューターと学ぶ Python — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
30
レッスン
120

よくある質問

「Session Framework」レッスンは無料ですか?

はい。「Session Framework」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Django Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Django Academyコースには全4レッスンが含まれています。

「Session Framework」で何を学びますか?

1人の訪問者に紐づくデータを保存します ブラウザで直接実行するハンズオンコードでDjango Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Django Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのDjango Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「Session Framework」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このDjango Academyレッスンでコードを書いて実行できますか?

はい。すべてのDjango Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Session Framework
  2. request.sessionの読み書き
  3. Messages Framework
  4. CookiesとSessionsの比較
← Django Academyに戻る