Flask’in redirect()
fonksiyonu, kullanıcıları web uygulamanızda yönlendirmek için olmazsa olmazdır. Form gönderimleri veya girişler gibi belirli eylemlerden sonra kullanıcıları farklı URL’lere sorunsuz bir şekilde geçirmenizi sağlar. Ancak, sadece yönlendirme her zaman yeterli değildir; genellikle yeni sayfaya veri geçirmeniz gerekir. Bu makale, güvenlik en iyi uygulamalarına odaklanarak, Flask uygulamalarınızda parametrelerle redirect()
‘i etkili bir şekilde nasıl kullanacağınızı açıklamaktadır.
İçindekiler Tablosu
- Parametre Geçirme Gereksinimini Anlamak
- Yöntem 1: Hassas Olmayan Veriler İçin URL Parametrelerini Kullanma
- Yöntem 2: Hassas Veriler İçin Flask Oturumlarını Kullanma
- Doğru Yöntemi Seçme
Parametre Geçirme Gereksinimini Anlamak
Temel redirect()
fonksiyonu, doğası gereği parametreleri doğrudan geçirmeyi desteklemez. Girdi olarak bir URL alır. Veri iletmek için URL parametrelerinden veya sunucu tarafı oturum yönetiminden yararlanmanız gerekir.
Yöntem 1: Hassas Olmayan Veriler İçin URL Parametrelerini Kullanma
En yaygın yaklaşım, parametreleri URL’ye sorgu dizesi olarak eklemeyi içerir (soru işaretinden ‘?’ sonraki kısım). Parametreler, ve işareti (‘&’) ile ayrılmış anahtar-değer çiftleridir.
from flask import Flask, render_template, redirect, url_for, request
app = Flask(__name__)
@app.route('/form', methods=['GET', 'POST'])
def my_form():
if request.method == 'POST':
name = request.form['name']
age = request.form['age']
return redirect(url_for('success', name=name, age=age))
return render_template('form.html')
@app.route('/success')
def success():
name = request.args.get('name')
age = request.args.get('age')
return f"Başarılı! Ad: {name}, Yaş: {age}"
if __name__ == '__main__':
app.run(debug=True)
<form method="POST">
<label for="name">Ad:</label>
<input type="text" id="name" name="name"><br><br>
<label for="age">Yaş:</label>
<input type="text" id="age" name="age"><br><br>
<input type="submit" value="Gönder">
</form>
Bu, /success?name=John&age=30
gibi URL’ler oluşturur. url_for
parametre yönetimini basitleştirir.
Yöntem 2: Hassas Veriler İçin Flask Oturumlarını Kullanma
Hassas veriler (kullanıcı kimlikleri, kimlik doğrulama belirteçleri) için asla URL parametreleri kullanmayın. Flask’in oturum nesnesi, verileri kullanıcının oturumu ile ilişkilendiren sunucu tarafı depolama sağlar.
from flask import Flask, render_template, redirect, url_for, request, session
app = Flask(__name__)
app.secret_key = 'your_secret_key' # Güçlü, rastgele oluşturulmuş bir anahtar ile DEĞİŞTİRİN
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
username = request.form['username']
# ... kimlik doğrulama mantığı ...
if username == "validuser":
session['username'] = username
return redirect(url_for('dashboard'))
return render_template('login.html')
@app.route('/dashboard')
def dashboard():
username = session.get('username')
if username:
return f"Hoş geldin, {username}!"
else:
return redirect(url_for('login'))
if __name__ == '__main__':
app.run(debug=True)
Çok Önemli, güçlü, rastgele oluşturulmuş bir secret_key
ayarlayın. Bu, oturum verilerinin şifrelenmesi için çok önemlidir.
Doğru Yöntemi Seçme
URL’de görülebilen hassas olmayan veriler için URL parametrelerini kullanın. Gizli kalması gereken gizli veriler için oturumları kullanın.
Bu kılavuz, sorunsuz ve güvenli bir kullanıcı deneyimi sağlamak için Flask’in redirect()
fonksiyonu ile güvenli ve verimli parametre geçişini göstermektedir.