session คือ ตัวแปรที่เป็นสิ่งที่ฝั่งไคลเอนต์ สร้างขึ้นมาเมื่อเปิดใช้งานเว็บบราวเซอร์และติดต่อมายังเว็บเซิฟเวอร์ผ่านทางยูอาร์แอลของเว็บไซต์ เมื่อไคลเอนต์ทำการปิดโปรแกรมเว็บบราวเซอร์ เซสชั่นก็จะถูกทำลายหรือปิดลง ส่วน flask นั้นเป็นตัวจัดการเว็บไซต์ของภาษาPython และมีฟังก์ชั่นหนึ่งที่เอาไว้ใช้กำหนด session ก็คือ ฟังก์ชั่น session ซึ่งจะเอาไว้ใช้กำหนด session ตอนที่ login ได้ครับ ซึ่งจะมีรูปแบบในการเรียกใช้งานดังต่อไปนี็
โค้ด: เลือกทั้งหมด
from flask import session
ตัวอย่างนะครับ
โค้ด html login
โค้ด: เลือกทั้งหมด
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="{{url_for('login')}}" method="POST">
<div class="form-group">
<input type="text" name="username" placeholder="username" class="form-control" id="username" required>
</div>
<div class="form-group">
<input type="password" name="password" placeholder="password" class="form-control" id="password" required>
</div>
<input type="submit" value="Login" class="btn btn-success">
</form>
</body>
</html>
โค้ด: เลือกทั้งหมด
from flask import Flask, request,url_for, redirect, render_template ,session
import os
app = Flask(__name__)
@app.route('/')
def index():
if not session.get('logged_in'):
return redirect(url_for('logout'))
else:
return render_template('home.html')
@app.route('/login')
def loginform():
return render_template('new.html')
@app.route('/login', methods=['POST'])
def login():
username ='test'
password = 'test'
user_login = request.form.get('username')
pass_login = request.form.get('password')
if user_login == username and pass_login == password:
session['logged_in'] = True
return redirect(url_for('index'))
else:
return redirect(url_for('logout'))
@app.route("/logout")
def logout():
session['logged_in'] = False
return redirect(url_for('login'))
if __name__ == '__main__':
app.secret_key = os.urandom(12)
app.run(debug=True)
อ้างอิง
https://www.pythonspot.com/login-authentication-with-flask/
https://www.tutorialspoint.com/flask/flask_sessions.htm
https://pythonhosted.org/Flask-Session/