Django ve Flask ile oturum yönetimi nasıl yapılır? Bu makalede adım adım açıklanıyor Django ve Flask kullanarak web uygulamalarınızda oturum yönetimi yaparken nelere dikkat etmeniz gerektiğini öğrenmek için okumaya devam edin
İnternet sayfaları, kullanıcıların üye olup hesaplarına giriş yapmalarını sağlayan üyelik sistemleri kullanmaktadır. Bu nedenle, oturum yönetimi oldukça önemlidir. Django ve Flask gibi web geliştirme araçları ile oturum yönetimi yapmak oldukça kolaydır. Bu makalede, bu araçları kullanarak oturum yönetimi nasıl yapılacağını öğreneceksiniz.
Django ile Oturum Yönetimi
Django, oturum yönetimi yapmak için hazır çözümler sunar. Kullanılacak oturum yönetimi seçenekleri arasında isim, e-posta adresi gibi parametreler yer alır. Django'da bireysel veya özel oturum yönetimi de yapılabilmektedir. Django'da oturum yönetimi yapmak için User modülü kullanılır. Bu modül, oturum açma, oturum kapatma ve oturum açılıp açılmadığını kontrol etme gibi işlemleri gerçekleştirmek için kullanılır.
Bu amaca yönelik olarak hazırlanan User modülü sayesinde, tek bir veritabanıyla tüm işlemleri yapmak mümkündür. Özellikle, özel uygulamalar için kullanılabilecek bu modül, her yerde kullanılabilecek bir yapıya sahiptir. Bu modül, gelişmiş bir kullanıcı yönetimi sistemine de sahiptir. Django ayrıca, kullanıcılara özel izinler verilmesi gibi daha kompleks oturum yönetimi işlemlerini de hızlı ve kolay bir şekilde yapmanızı sağlar.
Oturum Açma İşlemi
Django'da yeni bir oturum açmak için öncelikle `authenticate()` fonksiyonu ile kullanıcı bilgilerinin kontrol edilmesi gerekir. Bu fonksiyon, kullanıcının `username` ve `password` bilgilerini alır ve veritabanında bu bilgilere sahip kullanıcı varsa onay verir. Kullanıcı bilgileri doğru olduğunda, `login()` fonksiyonu kullanılarak kullanıcı oturumu açılır.
Örnek olarak:
Kod Parçası |
---|
user = authenticate(request, username=username, password=password) if user is not None: login(request, user) #Oturum açıldı else: #Oturum açma işlemi başarısız oldu |
Oturum açma işlemi sırasında `username` ve `password` dışında seçenekler de kullanılabilir. Örneğin, `email` adresi ile de oturum açılabilir. Bu durumda `authenticate()` fonksiyonuna `email` adresi de eklenmelidir.
Django ile oturum açma işlemi oldukça basittir ve `User` modülü sayesinde farklı seçeneklerle oturum yönetimi yapabilirsiniz.
Örnek Kod Parçası:
=Yukarıdaki örnek kod parçası, Django ile oturum açma işlemini göstermektedir. `authenticate()` fonksiyonu ile kullanıcının bilgileri kontrol edilir ve eğer bilgiler doğruysa `login()` fonksiyonu ile kullanıcı oturum açar. Eğer kullanıcının bilgileri hatalıysa oturum açma işlemi başarısız olacaktır. Örnek kod parçası aşağıdaki gibi değiştirilebilir:
Kullanıcı Adı ve Parola | Başarılı Oturum Açma | Başarısız Oturum Açma |
---|---|---|
Doğru Bilgiler | Oturum açıldı | Hatalı giriş |
Yanlış Bilgiler | Hatalı giriş | Hatalı giriş |
Bu şekilde farklı senaryolara göre oturum açma işlemi yapabilirsiniz.
Oturum Açma Seçenekleri:
=Django ile oturum açma işlemi yaparken sadece `username` ve `password` değil, farklı seçenekler de kullanılabilir. Örneğin, kullanıcıların email adresleri ile oturum açabilmeleri için `email` alanı da kullanılabilir. Bunun için farklı bir kullanıcı modeli tanımlayarak `email` alanını eklemeniz gerekiyor. Daha sonra `authenticate()` fonksiyonunda `username` alanı yerine `email` alanının kullanılması yeterlidir.
Oturum Kapatma İşlemi
Django ile oturum kapatma işlemi yapmak oldukça kolaydır. Kullanıcı oturumunu sonlandırmak için `logout()` fonksiyonu kullanılır.
logout(request)
#Oturum kapatıldı
Bu fonksiyon kullanıldığında, kullanıcının oturumu sonlandırılacak ve ilgili oturum verileri silinecektir. Daha sonra kullanıcının yeniden oturum açması gerekecektir.
Aynı zamanda diğer bir kullanıcı tarafından aynı bilgisayardan giriş yapıldığında, önceki kullanıcının oturumu otomatik olarak sonlandırılır. Bu sayede güvenlik açısından da önemli bir adım atılmış olur.
Örnek Kod Parçası:
Bu örnek kod parçası, Django ile oturum kapatma işlemini gerçekleştirmek için kullanılır. `request` parametresi, hangi kullanıcının oturumunu kapatmak istediğimizi belirtir. `logout()` fonksiyonu çağrıldığında, belirtilen kullanıcının oturumu kapatılır ve sayfa yeniden yönlendirilir.Örnek Kod Parçası:logout(request)
#Oturum kapatıldı
'logout() missing 1 required positional argument: 'request''
#Oturum kapatma işlemi başarısız oldu
Flask ile Oturum Yönetimi
Flask, çoğunlukla küçük ölçekteki web uygulamaları için kullanılan bir Python web çatısıdır. Flask, oturum yönetimi için çerezler aracılığıyla `flask-session` modülünü kullanır. Bu modül, oturum verilerini çerezlerde (cookies) saklar.
Oturum yönetimi için Flask uygulamanızı oluşturduktan sonra, `session` anahtar kelimesi ile oturum bilgilerini saklayabilirsiniz. Oturum açma işlemi, `POST` yöntemi ile gelen kullanıcı adı ve şifre bilgilerinin kontrol edilmesi ve doğru ise, `session['username']` öğesi ile oturum açılır. Örnek kod parçası şu şekildedir:
from flask import Flask, session, redirect, url_for, request
app = Flask(__name__)
app.secret_key = 'gizli anahtar'
@app.route('/login', methods=['POST'])
def login():
usr = request.form['username']
pwd = request.form['password']
if usr == 'kullanici adi' and pwd == 'parola':
session['username'] = usr
return redirect(url_for('index'))
return 'Hatalı giriş'
Oturum kapatma işlemi ise, `session.pop()` fonksiyonu kullanılarak yapılır. Örnek kod parçası şu şekildedir:
@app.route('/logout')
def logout():
session.pop('username', None)
return redirect(url_for('index'))
Dikkat edilmesi gereken bir nokta, oturum açma işleminden sonra kullanıcı adı ve şifre bilgilerinin çerezlere kaydedilmemesi ve her seferinde kullanıcıdan yeniden istenmesidir. Bu nedenle, Flask uygulamanızda Yerel Depolama ve Benzeri Ayarlar (LocalStorage and Similar Settings for Flask Applications) gibi bir çözüm kullanarak, kullanıcının başka sayfalara geçtiğinde ve geri döndüğünde oturumun hala açık olmasını sağlayabilirsiniz.
Oturum Açma İşlemi
Flask ile oturum açmak için önce Flask uygulamanızı oluşturmanız gerekmektedir. Flask uygulamanızı oluşturduktan sonra, `session` anahtar kelimesi ile oturum bilgilerinizi saklayabilirsiniz. Bu işlem için şu adımları takip edebilirsiniz:
- `session` modülünü Flask uygulamanıza ekleyin.
- Kullanıcının girdiği kullanıcı adı ve şifre bilgilerini alın.
- Kullanıcı bilgilerini kontrol edin ve doğru ise, `session` anahtar kelimesi ile oturum bilgilerinizi saklayın.
- Kullanıcı bilgileri yanlış ise, hata mesajı gösterin.
Aşağıdaki örnek kod parçasını kullanarak Flask ile oturum açma işleminin nasıl yapıldığını daha iyi anlayabilirsiniz:
from flask import Flask, session, redirect, url_for, requestapp = Flask(__name__)app.secret_key = 'gizli anahtar'@app.route('/login', methods=['POST'])def login(): usr = request.form['username'] pwd = request.form['password'] if usr == 'kullanici adi' and pwd == 'parola': session['username'] = usr return redirect(url_for('index')) return 'Hatalı giriş'
Bu kod parçasında `username` ve `password` yerine kullanıcıların girdiği kullanıcı adı ve şifre değerleri kontrol edilir. Doğru kullanıcı bilgileri girildiğinde, `session` anahtar kelimesi ile oturum bilgileri saklanır ve kullanıcı uygulamaya yönlendirilir. Hatalı kullanıcı bilgileri girildiğinde ise hata mesajı gösterilir.
Örnek Kod Parçası:
=Flask ile oturum açma işlemi için öncelikle `flask` modülü ile gerekli kütüphaneleri import etmemiz gerekiyor. Daha sonra Flask uygulamamızı oluşturuyoruz ve `app.secret_key` parametresi ile bir gizli anahtar belirliyoruz. Bu anahtar sayesinde oturum bilgileri korunur. `@app.route` decorator'ı ile '/login' endpoint'ini oluşturuyoruz ve burada POST methodunu kullanarak kullanıcı adı ve şifre bilgilerini alıyoruz. Eğer kullanıcı adı ve şifre doğruysa oturum açılıp, ardından `session` parametresi ile kullanıcının adı kaydedilir. Eğer kullanıcı bilgileri hatalıysa 'Hatalı Giriş' mesajı döndürülür.
Oturum Kapatma İşlemi
=Flask ile oturum kapatma işlemi oldukça basittir. Oturum kapatma işlemi için `session.pop()` fonksiyonu kullanılır. Bu fonksiyon, oturum verilerinden belirli bir anahtara sahip veriyi silebilir. Bu sayede kullanıcının oturumu sonlandırılmış olur.
from flask import Flask, session, redirect, url_for |
---|
@app.route('/logout') |
def logout(): |
session.pop('username', None) return redirect(url_for('index')) |
Oturum kapatma işleminde `session.pop()` fonksiyonu kullanıcı adı yerine sileceği verinin anahtarını alır. Eğer oturum verilerinde belirtilen anahtar yoksa hata vermez, sadece hiçbir işlem yapmaz.
Örnek Kod Parçası:
Oturum kapatma işlemi yaparken Flask ile `session.pop()` fonksiyonunu kullanabilirsiniz. Bu fonksiyon, `session` sözlüğünden belirli bir değeri kaldırmaya yarar. Örneğin oturum kapatma işleminde, kullanıcının oturumunu sonlandırmak için `username` verisini `session` sözlüğünden çıkarmalısınız. Aşağıdaki örnek kod parçasında, `@app.route()` decoratorü ile `/logout` URL'i belirlenir. `def` ile nitelendirilen `logout()` fonksiyonunda ise, `session.pop()` fonksiyonu kullanılarak `username` verisi `session` sözlüğünden çıkarılır. Daha sonra, `index` fonksiyonuna yönlendirme yapılır ve oturum kapatma işlemi başarılı olarak tamamlanır.@app.route('/logout')
def logout():
session.pop('username', None)
return redirect(url_for('index'))
#Oturum kapatma işlemi yapıldı