การใช้งาน flask session ใช้งานอย่างไร ทำหน้า Login อย่างง่ายด้วย Python

แนะนำ สอบถาม ภาษา C สำหรับผู้เริ่มต้น ภาษา Java ภาษา Python

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
jirawoot
PHP VIP Members
PHP VIP Members
โพสต์: 3129
ลงทะเบียนเมื่อ: 17/06/2019 10:30 am

การใช้งาน flask session ใช้งานอย่างไร ทำหน้า Login อย่างง่ายด้วย Python

โพสต์ที่ยังไม่ได้อ่าน โดย jirawoot »

การใช้งาน flask session ใช้งานอย่างไร
session คือ ตัวแปรที่เป็นสิ่งที่ฝั่งไคลเอนต์ สร้างขึ้นมาเมื่อเปิดใช้งานเว็บบราวเซอร์และติดต่อมายังเว็บเซิฟเวอร์ผ่านทางยูอาร์แอลของเว็บไซต์ เมื่อไคลเอนต์ทำการปิดโปรแกรมเว็บบราวเซอร์ เซสชั่นก็จะถูกทำลายหรือปิดลง ส่วน flask นั้นเป็นตัวจัดการเว็บไซต์ของภาษาPython และมีฟังก์ชั่นหนึ่งที่เอาไว้ใช้กำหนด session ก็คือ ฟังก์ชั่น session ซึ่งจะเอาไว้ใช้กำหนด session ตอนที่ login ได้ครับ ซึ่งจะมีรูปแบบในการเรียกใช้งานดังต่อไปนี็

โค้ด: เลือกทั้งหมด

from flask import session
จากโค้ดเป็นการเรียกใช้ฟังก์ชัน session ของ flask
ตัวอย่างนะครับ
โค้ด 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>
โค้ด python

โค้ด: เลือกทั้งหมด

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)
จากรูปภาพ ทำการ login
Selection_009.png
Selection_009.png (4.87 KiB) Viewed 2146 times
จากรูปภาพ login เสร็จเรียบร้อย ก็จะเข้ามาหน้า home ครับ
Selection_010.png
Selection_010.png (6.15 KiB) Viewed 2146 times
ซึ่งในส่วนนี้โปรแกรมจะกำหนด session['logged_in'] ให้เท่ากับ True แล้วถ้า logout ก็จะกำหนด session ให้เป็น false ครับ


อ้างอิง
https://www.pythonspot.com/login-authentication-with-flask/
https://www.tutorialspoint.com/flask/flask_sessions.htm
https://pythonhosted.org/Flask-Session/
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 68