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 '&plus;name&plus;'</h1>'

アプリケーションを実行し、 http://localhost:5000/ にアクセスします

ReadCookie HTML

クッキーを設定した結果はこのように表示されます-

Cookieの設定結果

リードバックCookieの出力を以下に示します。

Cookieバックの読み取り