English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Cookie와 달리, 세션 데이터는 서버에 저장됩니다. 세션은 클라이언트가 서버에 로그인하고 로그아웃하는 시간 간격입니다. 이 세션에서 저장해야 할 데이터는 서버의 일시적인 디렉토리에 저장됩니다。
각 클라이언트의 세션에 세션 ID를 할당합니다. 세션 데이터는 cookie의 상단에 저장되며, 서버는 암호화된 방식으로 서명합니다. 이러한 암호화를 위해 Flask 애플리케이션은 SECRET_KEY를 정의해야 합니다。
세션 객체는 세션 변수와 관련된 값이 포함된 키-밸류 쌍을 가진 딕셔너리 객체입니다。
예를 들어, 'username' 세션 변수를 설정하려면 다음과 같은 문장을 사용하십시오 -
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ko.oldtoolbag.com # Date : 2020-08-08 Session['username'] = 'admin'
세션 변수를 제거하려면 pop() 메서드를 사용하십시오。
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ko.oldtoolbag.com # Date : 2020-08-08 session.pop('username', None)
다음 코드는 Flask에서 세션 작동 방식의 간단한 예제입니다. URL => '/' 사용자가 설정되지 않았기 때문에 사용자를 로그인하도록 알려주세요。
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ko.oldtoolbag.com # Date : 2020-08-08 @app.route('/') def index(): if 'username' in session: username = session['username'] return ' 로그인한 사용자로 + username + '
' + \ "当用户浏览到URL=>'/login'时,login()函数显示视图,因为它是通过GET方法调用的,所以打开一个登录表单。
表单填写后重新提交到URL=> /login,现在会话变量被设置。 应用程序被重定向到URL=> /。 这时找到会话变量:username。
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ko.oldtoolbag.com # Date : 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">该应用程序还包含一个logout()视图函数,它删除’username’会话变量的值。 再次 URL 跳转到 ‘/‘ 显示开始页面。
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ko.oldtoolbag.com # Date : 2020-08-08 @app.route('/logout' def logout(): # remove the username from the session if it is there session.pop('username', None) return redirect(url_for('index'))运行应用程序并访问主页(确保设置应用程序的secret_key)。
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ko.oldtoolbag.com # Date : 2020-08-08 from flask import Flask, session, redirect, url_for, escape, request app = Flask(__name__) app.secret_key = 'any random string’完整代码如下所示 -
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ko.oldtoolbag.com # Date : 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 = 'fkdjsafjdkfdlkjfadskjfadskljdsfklj' @app.route('/') def index(): if 'username' in session: username = session['username'] return '登录用户名是:' + username + '
' + \ "点击这里注销출력은 다음과 같이 표시됩니다. 링크를 클릭하십시오 여기를 클릭하여 로그인
이 링크는 다른 인터페이스로 이동됩니다. 'admin'을 입력하세요.
화면에 메시지가 표시됩니다 로그인 사용자 이름은: admin아래와 같이 표시됩니다 -