Formlar ve İstek Verileri
Kullanıcı girdilerini işleyin
Formlar ve İstek Verileri, CoddyKit'te ücretsiz bir Python Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Python Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Python Academy kursu toplamda 4 dersten oluşur.
request Nesnesi
Flask, her görünüme gelen tüm verileri (form alanları, sorgu dizeleri, JSON, üst bilgiler ve daha fazlası) tutan global bir request nesnesine erişim verir.
from flask import Flask, request
app = Flask(__name__)
# request is available inside any view
print('request carries the incoming data')Sorgu Dizesi Parametreleri
URL'de ? işaretinden sonraki veriler request.args içinde bulunur. Bir değeri güvenli biçimde okumak için .get() kullanın.
from flask import Flask, request
app = Flask(__name__)
@app.route('/search')
def search():
term = request.args.get('q', '')
return 'Searching for ' + term
print('/search?q=cats -> request.args')Bir HTML Formu
Bir form gönderildiğinde veri yollar. method ve action öznitelikleri bunun nasıl ve nereye yapılacağını belirler.
# <form method='POST' action='/login'>
# <input name='username'>
# <input name='password' type='password'>
# <button>Submit</button>
# </form>
print('Form posts username and password')Form Verilerini Okuma
Gönderilen form alanları request.form içine gelir. Bunlara girdinin name özniteliğiyle erişin.
from flask import Flask, request
app = Flask(__name__)
@app.route('/login', methods=['POST'])
def login():
user = request.form['username']
return 'Welcome ' + user
print('request.form holds posted fields')get ile Güvenli Erişim
request.form['x'] kullanıldığında anahtar eksikse hata oluşur. Bunun yerine request.form.get('x') kullanın; bu ifade None döndürür.
from flask import Flask, request
app = Flask(__name__)
@app.route('/login', methods=['POST'])
def login():
user = request.form.get('username')
if not user:
return 'Missing username', 400
return 'Welcome ' + user
print('.get avoids KeyError')Tek Görünümde GET ve POST
Yaygın bir yaklaşım şudur: formu GET isteğinde gösterin, verileri POST isteğinde işleyin ve bunların tamamını tek bir görünümde gerçekleştirin.
from flask import Flask, request, render_template
app = Flask(__name__)
@app.route('/contact', methods=['GET', 'POST'])
def contact():
if request.method == 'POST':
return 'Thanks, ' + request.form.get('name', 'friend')
return render_template('contact.html')
print('One view, two methods')Girdiyi Doğrulama
Kullanıcı girdisine asla güvenmeyin. Gerekli alanların bulunduğunu ve kullanılmadan önce makul değerlere sahip olduğunu denetleyin.
from flask import Flask, request
app = Flask(__name__)
@app.route('/age', methods=['POST'])
def age():
raw = request.form.get('age', '')
if not raw.isdigit():
return 'Age must be a number', 400
return 'Age is ' + raw
print('Validate before trusting input')JSON Okuma
API istemcileri genellikle JSON gönderir. request.get_json() gövdeyi bir Python sözlüğüne ayrıştırır.
from flask import Flask, request
app = Flask(__name__)
@app.route('/api', methods=['POST'])
def api():
data = request.get_json()
return 'Got name ' + data.get('name', '?')
print('get_json parses the JSON body')Dosya Yüklemeleri
Yüklenen dosyalar request.files içinde bulunur. Doğruladıktan sonra bir dosyayı kendi .save() yöntemiyle kaydedin.
from flask import Flask, request
app = Flask(__name__)
@app.route('/upload', methods=['POST'])
def upload():
f = request.files.get('photo')
if f:
return 'Received ' + f.filename
return 'No file', 400
print('request.files holds uploads')POST Sonrasında Yönlendirme
Bir formu işledikten sonra kullanıcıyı yönlendirerek sayfa yenilendiğinde yinelenen gönderimleri önleyin. redirect(url_for(...)) kullanın.
from flask import Flask, redirect, url_for
app = Flask(__name__)
@app.route('/done')
def done():
return 'All done'
@app.route('/save', methods=['POST'])
def save():
return redirect(url_for('done'))
print('Post/Redirect/Get pattern')Kısa Bildirimler
flash(), yönlendirmeden sonra gösterilen tek kullanımlık bir mesajı saklar; 'Başarıyla kaydedildi' gibi onaylar için oldukça kullanışlıdır.
from flask import Flask, flash, redirect, url_for
app = Flask(__name__)
app.secret_key = 'change-me'
@app.route('/save', methods=['POST'])
def save():
flash('Saved successfully')
return redirect(url_for('save'))
print('flash shows a one-time message')Hızlı Kontrol
Form işleme bilginizi sınayın.
Özet
Flask'ta kullanıcı girdilerini işlemeyi öğrendiniz.
- Sorgu dizeleri için
request.args, form alanları içinrequest.form - JSON gövdeleri için
request.get_json(), yüklemeler içinrequest.files - Girdiyi her zaman doğrulayın ve güvenli erişim için
.get()kullanın - Düzenli bir kullanıcı deneyimi için Post/Redirect/Get ve
flash()kullanın
Sıkça Sorulan Sorular
“Formlar ve İstek Verileri” dersi ücretsiz mi?
Evet — “Formlar ve İstek Verileri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Python Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Python Academy kursu toplamda 4 dersten oluşur.
“Formlar ve İstek Verileri” dersinde ne öğreneceğim?
Kullanıcı girdilerini işleyin Python Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Python Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Python Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“Formlar ve İstek Verileri” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Python Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Python Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Yönlendirmeler ve Görünümler
- Jinja2 ile Şablonlar
- Formlar ve İstek Verileri
- REST Uç Noktası Oluşturma