Özel Doğrulayıcılar ve Alan Hataları
Kurallar yazıp mesajları kullanıcılara gösterin.
Özel Doğrulayıcılar ve Alan Hataları, CoddyKit'te ücretsiz bir Flask Academy dersidir. Bu, 4 dersinin 4. 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, Flask Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Flask Academy kursu toplamda 4 dersten oluşur.
Yerleşiklerin Ötesinde
Yerleşik doğrulayıcılar temel ihtiyaçları karşılar; ancak gerçek uygulamaların kendine özgü kuralları vardır. Şimdi özel doğrulayıcılar yazacak ve anlaşılır hatalar göstereceksiniz. ✍️
Standart Kümesini Hatırlayın
DataRequired, Length ve Email doğrulayıcılarını zaten biliyorsunuz. Özel kurallar, kütüphanenin tahmin edemeyeceği mantığı eklemek için bunların üzerine kurulur.
from wtforms.validators import DataRequired, Length, EmailDoğrulayıcılar İçinde Tanımlayın
Özel bir doğrulayıcı, alanın validators listesindeki bir işlevden ibarettir. Her denetimde formu ve alanı alır.
def not_admin(form, field):
pass
name = StringField('Name', validators=[not_admin])ValidationError Oluşturun
Bir değeri reddetmek için bir mesajla birlikte ValidationError oluşturun. WTForms bunu yakalar ve metni ilgili alana ekler.
from wtforms.validators import ValidationError
def not_admin(form, field):
if field.data == 'admin':
raise ValidationError('Name is reserved.')validate_ Kuralı
Tek alanlı bir kural için form sınıfına validate_fieldname adlı bir yöntem ekleyin. WTForms bu yöntemi otomatik olarak çağırır.
class SignupForm(FlaskForm):
username = StringField('Username')
def validate_username(self, field):
if len(field.data) < 3:
raise ValidationError('Too short.')Veritabanına Göre Doğrulayın
Bu yöntemler her türlü kodu çalıştırabilir; bu nedenle zaten alınmış bir kullanıcı adını reddetmek için veritabanını denetleyin.
def validate_email(self, field):
if User.query.filter_by(email=field.data).first():
raise ValidationError('Email already used.')Hatalar Alana Eklenir
Başarısız olan her denetimin mesajı, basit bir liste olan field.errors içine eklenir. Boş liste, alanın sorunsuz geçtiği anlamına gelir.
form.username.errors # ['Too short.']Hataları Şablonda Gösterin
Hataları görüntülemek için Jinja içinde bir alanın hata listesi üzerinde döngü kurun. Kullanıcılar, düzeltecekleri şeyi girdinin hemen yanında görür.
{% for error in form.username.errors %}
<span class="err">{{ error }}</span>
{% endfor %}Tüm Hataları Bir Anda Görün
Bir özet için form.errors değerini kullanın. Bu değer, doğrulama çalıştıktan sonra her alan adını mesaj listesiyle eşleştirir.
form.errors # {'username': ['Too short.']}Yeniden Kullanılabilir Doğrulayıcı Sınıfları
Tekrar kullanacağınız kurallar için __call__ yöntemine sahip bir sınıf yazın. Bu sınıfı bir kez yapılandırıp birçok alana ekleyebilirsiniz.
class NoSpaces:
def __call__(self, form, field):
if ' ' in field.data:
raise ValidationError('No spaces allowed.')Mesajları Yararlı Tutun
İyi hata mesajları, yalnızca bir sorun olduğunu söylemek yerine kullanıcıya sorunu nasıl düzelteceğini anlatır. Açıklık güven oluşturur.
Hızlı Kontrol
Özel bir doğrulayıcı işlevi içinde bir değeri nasıl reddedersiniz?
Özet
Kuralları doğrudan, validate_fieldname yöntemleri aracılığıyla ve yeniden kullanılabilir sınıflarla eklediniz; ValidationError oluşturarak field.errors içindeki mesajları gösterdiniz. 🌟
Sıkça Sorulan Sorular
“Özel Doğrulayıcılar ve Alan Hataları” dersi ücretsiz mi?
Evet — “Özel Doğrulayıcılar ve Alan Hataları” 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 Flask Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Flask Academy kursu toplamda 4 dersten oluşur.
“Özel Doğrulayıcılar ve Alan Hataları” dersinde ne öğreneceğim?
Kurallar yazıp mesajları kullanıcılara gösterin. Flask 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.
Flask Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Flask 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 4. dersidir.
“Özel Doğrulayıcılar ve Alan Hataları” 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 Flask Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Flask 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
- FlaskForm Sınıfı Tanımlama
- Form Oluşturma ve Gönderme
- validate_on_submit ve CSRF Belirteçleri
- Özel Doğrulayıcılar ve Alan Hataları