Flask - Oturumlar

Cookie gibi, Oturum verileri de istemcide saklanır. Oturum, bir istemcinin bir sunucuda oturum açıp oturumu kapattığı zaman aralığıdır. Bu oturumda tutulması gereken veriler, istemci tarayıcısında saklanır.

Her müşteriyle bir oturum atanır. Session ID. Oturum verileri tanımlama bilgilerinin üzerinde saklanır ve sunucu bunları kriptografik olarak imzalar. Bu şifreleme için, bir Flask uygulamasının tanımlanmış birSECRET_KEY.

Oturum nesnesi aynı zamanda oturum değişkenlerinin ve ilişkili değerlerin anahtar-değer çiftlerini içeren bir sözlük nesnesidir.

Örneğin, bir ‘username’ oturum değişkeni ifadeyi kullan -

Session[‘username’] = ’admin’

Bir oturum değişkenini serbest bırakmak için şunu kullanın: pop() yöntem.

session.pop('username', None)

Aşağıdaki kod, Flask'ta oturum çalışmalarının basit bir göstergesidir. URL‘/’ Kullanıcıdan oturum değişkeni olarak oturum açmasını ister ‘username’ ayarlanmadı.

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

Kullanıcı '/ login' seçeneğine göz atarken login () görüntüleme işlevi, GET yöntemi ile çağrıldığı için bir oturum açma formu açar.

Bir form geri gönderilir ‘/login’ve şimdi oturum değişkeni ayarlanmıştır. Uygulama adresine yeniden yönlendirildi‘/’. Bu sefer oturum değişkeni‘username’ bulunan.

@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>
	
   '''

Uygulama ayrıca bir logout() açılan görüntüleme işlevi ‘username’oturum değişkeni. Bu nedenle‘/’ URL tekrar açılış sayfasını gösterir.

@app.route('/logout')
def logout():
   # remove the username from the session if it is there
   session.pop('username', None)
   return redirect(url_for('index'))

Uygulamayı çalıştırın ve ana sayfayı ziyaret edin. (Ayarladığınızdan emin olunsecret_key uygulamanın)

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

Çıktı aşağıda gösterildiği gibi görüntülenecektir. Linke tıklayınız“click here to log in”.

Bağlantı başka bir ekrana yönlendirilecektir. "Yönetici" yazın.

Ekran size mesajı gösterecek, ‘Logged in as admin’.