2016/05/18更新

[Python] FlaskアプリケーションでCookieを扱う方法

このエントリーをはてなブックマークに追加            

こんにちは、@yoheiMuneです。
先日、[Python] 軽量WebフレームワークのFlaskに入門(準備、起動、HTML、静的ファイル、GET、POSTなど)で入門記事を扱いましたが、今回はFlaskでのCookieの扱い方をブログに書きたいと思います。

画像

目次




FlaskでCookieを扱う

Flaskではrequestオブジェクトやresponseを通してクッキーを扱うことができます。


Cookieをセットする

responseオブジェクトを通してCookieを設定することができます。
# make_responseをインポート
from flask import Flask, make_response

app = Flask(__name__)
@app.route('/')
def index():
    content = "**レスポンス内容**"

    # make_responseでレスポンスオブジェクトを生成する
    response = make_response(content)

    # Cookieの設定を行う
    max_age = 60 * 60 * 24 * 120 # 120 days
    expires = int(datetime.now().timestamp()) + max_age
    response.set_cookie('uid', value="**ユーザーIDなど**", max_age=max_age, expires=expires, path='/', domain=domain, secure=None, httponly=False)

    # レスポンスを返す
    return response
ポイントとしては、make_responseでレスポンスオブジェクトを作成して、それに対してset_cookieを呼び出すことでCookieを指定しています。set_cookieの詳細は、以下を参照ください。

http://flask.pocoo.org/docs/0.10/api/#flask.Response.set_cookie


Cookieを取得する

続いて、Cookieの取得部分です。こちらはrequestオブジェクトを利用します。
# requestをインポート
from flask import request

@app.route('/foo')
def foo():
    # requestオブジェクトからCookieを取得する
    uid = request.cookies.get('uid', None)
    # 以下省略
ここでのポイントは、from flask import requestでリクエストオブジェクトを使える状態として、request.cookiesから値を取得するというところです。request.cookiesの詳細は、以下を参照ください(といっても大した情報はないですが)。

http://flask.pocoo.org/docs/0.10/api/#flask.Request.cookies



最後に

今回は、PythonのWebライブラリであるFlaskにおいて、Cookieを用いる方法についてブログを書きました。今回のブログのように、いろいろと痒いところに手が届いて実装が楽というのは、Flaskで良いポイントかなーと感じています。

最後になりますが本ブログでは、Python・Swift・Java・フロントエンド・機械学習など雑多に情報発信をしていきます。自分の第2の脳にすべく、情報をブログに貯めています。気になった方は、本ブログのRSSTwitterをフォローして頂けると幸いです ^ ^。

最後までご覧頂きましてありがとうございました!





こんな記事もいかがですか?

RSS画像

もしご興味をお持ち頂けましたら、ぜひRSSへの登録をお願い致します。