English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Cookieとは異なり、セッションデータはサーバー上に保存されます。セッションは、クライアントがサーバーにログインしてログアウトする時間間隔です。このセッション中に保存する必要があるデータは、サーバーの一時ディレクトリに保存されます。
Cookieとは異なり、セッションデータはサーバー上に保存されます。セッションは、クライアントがサーバーにログインしてログアウトする時間間隔です。このセッション中に保存する必要があるデータは、サーバーの一時ディレクトリに保存されます。このための暗号化には、FlaskアプリケーションにSECRET_KEYが必要です。
セッションオブジェクトは、セッション変数と関連する値を含むキーワード対のディクショナリオブジェクトです。
例えば、'username'セッション変数を設定するには、以下の文を使用してください。 -
「# 文件名《: 「example.py 「# 比常民本《: 2020 「By 「テストムー3codebox 「# 作者「by《: テストムー3codebox.com 「# 日期《: 2020-08-08 Session['username'] = 'admin'
セッション変数を削除するには、pop()メソッドを使用してください。
「# 文件名《: 「example.py 「# 比常民本《: 2020 「By 「テストムー3codebox 「# 作者「by《: テストムー3codebox.com 「# 日期《: 2020-08-08 session.pop('username', None)
以下のコードはFlaskでセッションがどのように動作するかの簡単なデモです。 URL => '/ユーザー名のセッション変数が設定されていないため、ユーザーにログインを促してください。
「# 文件名《: 「example.py 「# 比常民本《: 2020 「By 「テストムー3codebox 「# 作者「by《: テストムー3codebox.com 「# 日期《: 2020-08-08 @app.route('/「') def index(): if 「'username' 「in 「session: username 「を session['username'] return 'ログイン中: ' + username + 「<br>「 + \ 「<b><a コンを 」「/logout'>クリックしてログアウト</a>/b>" return "You are not logged in当用户浏览到URL=>'/login'时,login()函数显示视图,因为它是通过GET方法调用的,所以打开一个登录表单。
表单填写后重新提交到URL=> /login,现在会话变量被设置。 应用程序被重定向到URL=> /。 这时找到会话变量:username。
「# 文件名《: 「example.py 「# 比常民本《: 2020 「By 「テストムー3codebox 「# 作者「by《: テストムー3codebox.com 「# 日期《: 2020-08-08 @app.route('/@app.route('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> '''「该应用程序还包含一个logout()视图函数,它删除「'username'「会课变量的值。再一次 URL 读入「/「' 显示开始页「
「# 文件名《: 「example.py 「# 比常民本《: 2020 「By 「テストムー3codebox 「# 作者「by《: テストムー3codebox.com 「# 日期《: 2020-08-08 @app.route('/logout()) def logout(): # usernameをセッションから削除する(存在する場合) session.pop('username', None) return redirect(url_for('index'))「运行应用程序并访问主页(保证设置应用程序的secret_key「)。
「# 文件名《: 「example.py 「# 比常民本《: 2020 「By 「テストムー3codebox 「# 作者「by《: テストムー3codebox.com 「# 日期《: 2020-08-08 from 「flask 「import 「Flask, 「session, 「redirect, 「url_for, 「escape, 「request app 「「= Flask(__name__) app.secret_key 「「'any 「random 「string「「完整代码如下所示 -
「# 文件名《: 「example.py 「# 比常民本《: 2020 「By 「テストムー3codebox 「# 作者「by《: テストムー3codebox.com 「# 日期《: 2020-08-08 from 「flask 「import 「Flask from 「flask 「import 「render_template from 「flask 「import 「request from 「flask 「import 「make_response from 「flask 「import 「Flask, 「session, 「redirect, 「url_for, 「escape, 「request app 「「= Flask(__name__) app.secret_key 「「ひのコンを 「ひのコン「「 @app.route('/「') def index(): if 「'username' 「in 「session: username 「を session['username'] return 「开启用户名是:「 + username + 「<br>「 + \ 「<b><a コンを 」「/logout'「ひのみんをベスん「ひのみんをベスん「/a>/b>" return 「ひの名引があでく、「<br><a コンを 」「/login'>/b>" + \ "ここをクリックしてログイン</b></a>" @app.route('/@app.route('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="ログイン"/></p> </form> ''' @app.route('/logout()) def logout(): # usernameをセッションから削除する(存在する場合) session.pop('username', None) return redirect(url_for('index')) if __name__ == '__main__': app.run(debug=True)出力は以下のようになります。リンク「 ここをクリックしてログイン
このリンクが別の画面にリダイレクトされます。'admin'を入力してください。
スクリーンにはメッセージが表示されます。 ログインユーザー名は:admin以下のようになります。 -