DjangoでのCookiesの作り方|設定や取得、有効期限について解説する

スポンサーリンク

この記事では、Web アプリケーションのために Django のクッキーを設定することについて話します。

まず、クッキーを使用する理論や理由について説明し、記事の最後までに Django でクッキーを実装することにします。

スポンサーリンク

クッキーとは何ですか?

クッキーは、専門的にはHTTPクッキーと呼ばれ、クライアント側のブラウザに保存され、それを要求されたときにウェブサイトのサーバーに送信される情報の一部(ファイルに保存される)です。

クッキーはクライアント側に保存されるため、ウェブサーバーにこれらのクッキーを送信できるかどうかは、クライアント側のセキュリティレベルに依存します。

永久に保存することも、特定の時間だけ保存することも可能です。

各クッキーは独自のエキスパート日時を持ち、有効期限が切れるとクライアントのブラウザから自動的に削除されます。

クッキーはどのように機能しますか?

Httpはステートレスプロトコルで、ウェブサーバーはあなたが初めてそのページを訪れたのか、以前にも訪れたことがあるのかを区別することができません。

そのため、あるページに初めてアクセスすると、サーバはブラウザに対して、サーバで生成されたユーザ情報などの情報を含むクッキーを応答します。

そのクッキーは、あなたのブラウザに保存されます。

そのため、再び訪問する際には、先に生成されたクッキーもHTTPリクエストと一緒にサーバーに送信されます。

すると、サーバーはそのクッキーを読み取り、適切な処理を行うことができます。

ブラウザは、有効期限が切れるまでクッキーを送信し続け、それ以降はブラウザから自動的に破棄されます。

なぜクッキーを使うのですか?

eコマースやFacebookのようなソーシャルメディアサイトでは、ログアウトせずにサイトを離れると、次にサイトにアクセスしたとき、あなたのアカウントはログインしたままであることを観察したことがあるかもしれません。

これは、Cookie(ユーザーのセッション情報を含む)を使用して行われます。

同様に、多くのeコマースサイトでは、さまざまな商品に関する推奨情報を得ることができます。

これも、クッキーがユーザーのブラウザに検索情報を保存しているためです。

Django クッキーでハンズオン

これから Cookie の簡単な応用例を見て、その使い方を学びます。

Django には Cookie を使うための組み込みメソッドがあります。

1) Django の Cookie 属性

Django のクッキー属性は、2つのアクションのうちの1つを実行できます。

ユーザーのコンピュータにクッキーを入れる (set)、そしてそのクッキーにアクセスする (get) です。

ここでは、両方の方法について見てみましょう。

クッキーの設定

このCookie属性は、Cookieを作成し、サーバーからユーザーのブラウザに送信して情報を保存します。

set_cookie()のシンタックスは以下の通りです。

set_cookie(cookie_name, value, max_age = None, expires = None)

クッキーを入手する

この属性は、サーバーが以前に送信されたクッキーを取り戻し、そこからデータを読み取るために使用されます。

クッキーを取得するためのシンタックスは以下の通りです。

request.COOKIES['cookie_Name']

2) ビューをコード化する

Django の Cookie が使えるメソッドがわかったので、Cookie を設定し、それにアクセスするためのビューをセットアップしてみましょう。

Django のビューの記事から、Cookie をセットアップするために構築していきます。

Cookie送信用ビュー

views.py ファイルに以下のビューを追加します。

def SetCookie(request):
    response = HttpResponse('Visiting for the first time')
    response.set_cookie('bookname','Sherlock Holmes')
    return response

URLパスは次のようになります。

path('setcookie/', SetCookie),

クッキーを取り返すためのビュー

以下のビューを views.py に追加してください。

def GetCookie(request):
    bookname = request.COOKIES['bookname']
    return HttpResponse(f'The book name is: {bookname}')

URLパスは以下のようになります。

path('getcookie/', GetCookie),

Cookieの実装

ここまでで、必要な個々のViewsについて説明しましたが、ここではViews.pyのスクリプト(上記のセクションの両方のコードを含む)をまとめています。

以下のコードをURLマップと一緒にviews.pyに追加するだけで、準備は完了です。

from django.shortcuts import HttpResponse
 
def SetCookie(request):
    response = HttpResponse('Visiting for the first time')
    response.set_cookie('bookname','Sherlock Holmes')
    return response
 
def GetCookie(request):
    bookname = request.COOKIES['bookname']
    return HttpResponse(f'The book name is: {bookname}')

urls.py ファイルは次のようになります。

from django.contrib import admin
from django.urls import path
from .views import SetCookie, GetCookie
 
urlpatterns = [
    path('setcookie/', SendCookie),
    path('getcookie/', GetCookie),
]

以上です! では、サーバーを起動して確認してみましょう!

Set Cookie
Set Cookie
Get Cookie
Get Cookie

まとめ

以上です! 以上が、Django のクッキーと、それをあなたのプロジェクトでどのように使うかについてのすべてでした。

上記のコードを自分で練習して、Cookie の理解を深めてください。

では、次の記事でお会いしましょう! それまでは、コーディングを続けてください!

タイトルとURLをコピーしました