Python 3 – PythonFlaskのセッションデータ

Python

目次

Cookieとは異なり、セッション(セッション)データはサーバーに保存されます。セッションは、クライアントがサーバーにログオンしてサーバーからログアウトする間隔です。セッションに保存する必要のあるデータは、一時的に保存されます。サーバー上のディレクトリ。

各クライアントのセッションにセッションIDを割り当てます。 セッションデータはCookieの先頭に保存され、サーバーは暗号化モードで署名します。この暗号化では、Flaskアプリケーションで定義済みのデータが必要です。 SECRET_KEY

関連コース: Python Flask:Flaskを使用してWebアプリを作成する

セッション

セッションオブジェクト

セッションオブジェクトは、セッション変数と関連する値のキーと値のペアを含む辞書オブジェクトでもあります。

たとえば、「username」セッション変数を設定するには、次のステートメントを使用します。

1
session['username'] = 'admin'

セッション変数を解放するには、 pop() 方法。

1
session.pop('username', None)

セッションの例

次のコードは、Flaskでのセッション作業の簡単なデモンストレーションです。URL「/」は、セッション変数「username」が設定されていないため、ユーザーにログインを求めるだけです。

1
2
3
4
5
6
@app.route("https://pythonbasics.org/")
def index():
if 'username' in session:
username = session['username']
return 'Logged in as ' + username + '<br>' + "<b><a href="https://pythonbasics.org/logout">click here to log out</a></b>"
return "You are not logged in <br><a href="https://pythonbasics.org/login">" + "click here to log in</a>"

ユーザーが「/ login」login()ビュー関数に移動すると、GETメソッドを介して呼び出されるため、ログインフォームが開きます。

フォームは「/ login」に返送され、セッション変数が設定されます。アプリケーションは「/」にリダイレクトされます。この時点で、セッション変数「username」が見つかりました。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@app.route("https://pythonbasics.org/login", methods = ['GET', 'POST'])
def login():
if request.method == 'POST':
session['username'] = request.form['username']
return redirect(url_for('index'))
return '''

<form action = "" method = "post">
<p><input type = text name = username/></p>
<p<<input type = submit value = Login/></p>
</form>
'''

The application also contains a logout () view function that pops up the 'username' session variable.Therefore, the "https://pythonbasics.org/" URL displays the start page again.

```python
@app.route("https://pythonbasics.org/logout")
def logout():

session.pop('username', None)
return redirect(url_for('index'))

アプリケーションを実行し、ホームページにアクセスします(アプリケーションのsecrett_keyが設定されていることを確認してください)

1
2
3
from flask import Flask, session, redirect, url_for, escape, request
app = Flask(__name__)
app.secret_key = 'any random string’

出力は次のように表示されます。 「ここをクリック」リンクをクリックします。

フラスコセッションログイン

リンクは別の画面にリダイレクトされます。 「admin」と入力してログインします。 画面に「管理者としてログインしました」というメッセージが表示されます。

関連コース: Python Flask:Flaskを使用してWebアプリを作成する

Hope this helps!

Source link

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です