Flask-cookies
提供:Dev Guides
フラスコ–クッキー
Cookieは、テキストファイルの形式でクライアントのコンピューターに保存されます。 その目的は、クライアントの使用状況に関するデータを記憶して追跡し、訪問者のエクスペリエンスとサイトの統計を改善することです。
- リクエストオブジェクト*にはCookieの属性が含まれています。 これは、クライアントが送信したすべてのCookie変数とそれに対応する値の辞書オブジェクトです。 それに加えて、Cookieは、サイトの有効期限、パス、およびドメイン名も保存します。
Flaskでは、Cookieは応答オブジェクトに設定されます。 * make_response()関数を使用して、ビュー関数の戻り値から応答オブジェクトを取得します。 その後、応答オブジェクトの set_cookie()*関数を使用してCookieを保存します。
Cookieの読み取りは簡単です。 request.cookies 属性の* get()*メソッドは、Cookieの読み取りに使用されます。
次のFlaskアプリケーションでは、 ’/’ URLにアクセスすると簡単なフォームが開きます。
@app.route('/')
def index():
return render_template('indexl')
このHTMLページには1つのテキスト入力が含まれています。
<html>
<body>
<form action = "/setcookie" method = "POST">
<p><h3>Enter userID</h3></p>
<p><input type = 'text' name = 'nm'/></p>
<p><input type = 'submit' value = 'Login'/></p>
</form>
</body>
</html>
フォームは ’/setcookie’ URLに投稿されます。 関連するビュー関数は、Cookie名 userID を設定し、別のページをレンダリングします。
@app.route('/setcookie', methods = ['POST', 'GET'])
def setcookie():
if request.method == 'POST':
user = request.form['nm']
resp = make_response(render_template('readcookiel'))
resp.set_cookie('userID', user)
return resp
*‘readcookiel’* には、別のビュー関数* getcookie()*へのハイパーリンクが含まれています。この関数は、ブラウザーでCookie値を読み取って表示します。
@app.route('/getcookie')
def getcookie():
name = request.cookies.get('userID')
return '<h1>welcome '+name+'</h1>'
アプリケーションを実行し、 http://localhost:5000/ にアクセスします
クッキーを設定した結果はこのように表示されます-
リードバックCookieの出力を以下に示します。