Jinja2(Pythonのテンプレートエンジン)でCookieの読み書きを行うメモです。
ウェブフレームワークは、Flask を使用します。
処理の流れは
1.Jinja2のテンプレートをレスポンスに設定
2.Cookieを書き込む
3.Cookieを読み込む
になります。
目次
1.Jinja2のテンプレートをレスポンスに設定
Flaskの「make_response」を使用します。
1 2 3 4 5 |
#import from flask import make_response #templateの指定 response = make_response(render_template('index.html')) |
make_response を使用するには、importする必要があります。
render_templateの戻り値をレスポンスオブジェクトに変換しています。
2.Cookieを書き込む
Flaskの関数(set_cookie)を使用します。
1 2 |
dic = { 'key1': 'val1', 'key2': 'val2' } response.set_cookie('cookie_name', value = json.dumps(dic)) |
この例では、cookieの設定値にJSON文字列を設定しています。
もちろん、JSON文字列ではなく普通の文字列を渡すことも可能です。
その場合は、次のようになります。
1 |
response.set_cookie('cookie_name', value = 'cookie_val') |
3.Cookieを読み込む
Flaskの関数(get_cookie)を使用します。
1 2 |
cookie = request.cookies.get('cookie_name', None) dic = json.loads(cookie) |
この例では、’cookie_name’ という キーから取り出した値を、変数 cookieに格納します。
次に、json.loads 関数を使用して、JSON文字列から辞書型に変換しています。
これで、cookieの書き込み、読み込みができます。
今回は、cookieのkey・valueのみ設定しましたが、それ以外の設定を行うことも可能です。
・max_age
・expires
・path
・domain
・secure
・httponly
・samesite
詳細につきましては、Flaskのページを参照してください。
コメント
[…] Flask & Jinja2でCookieの読み書き […]