Flask Dersleri

Flask WTForms Yapısı(Flask – WTF)

Merhaba Arkadaşlar, Flask WTForms Yapısı(Flask – WTF) yazısı ile birlikteyiz. Bir önceki yazıda Flask form yapısı dersini anlatırken Flask ile form işlemlerini iki farklı şekilde yapabildiğimizi ve Flask HTML Form yapılarını anlatmıştık. Ayrıca o derste http protokolünün ne olduğunu ve GET, POST metotlarını anlatmıştık. Eğer o yazıyı okumadıysanız öncelikle o derse bakmanızı tavsiye ederim.

Flask WTForms Nedir?

Bir önceki derste formların ne kadar önemli olduğunu söylemiştik.  WTForms kütüphanesi ise web uygulaması geliştirirken bizi html kodlarını yazmaktan kurtaran kütüphanedir diyebiliriz. WTForms kütüphanesi sayesinde biz hmtl kodlarını yazmadan da hızlı ve pratik bir şekilde uygulamamızın form kısımlarını yazabiliriz. Flask Framework te bu kütüphaneyi kullanmamızı sağlayan kütüphane ise Flask -WTF  kütüphanesidir.

Flask –WTF Kurulumu

Bunun için ilk önce bilgisayarımızda terminal ekranını açıyoruz.

Bu şekilde bilgisayarımıza Flask – WTF kütüphanesini indirmiş olduk. Şimdi indirdiğimiz kütüphaneyi Flask  projemize dahil edelim.

Biz bu derste kullanıcı kayıt formunu oluşturacağız. Hemen başlayalım bunun için ilk önce WTForms kütüphanesinin  HTML kodları karşılığı olan  WTForms elamanlarını görelim.

Şimdi kullanıcı kayıt formunu oluşturalım. Bunun için Flask – WTF paketi içindeki Form() sınıfını miras alıyoruz. Eğer Python kalıtım bilginiz yoksa buraya bakabilirsiniz.

Kullanıcı kayıt formumuzu oluşturduk. Yalnız bu formda eksiz bazı şeyler var mesela isim veya soyisim bilgileri boş bırakılamaz olması, email bilgisinin geçerli olup olmadığını kontrol edilmesi veya parola bilgilerinin eşit olması ve belli bir uzunlukta olması lazım gibi. İşte bu tür kısıtlama ve sınırlamaları kontrol etmek için validators fonksiyonunu kullanacağız. İlk önce validators fonksiyonu parametrelerini görelim.

 

Validators ParametreleriAçıklama
DataRequired()Alanın boş olup olmadığını kontrol eder.
Length(min=6,max =15)Karakter aralığını kontrol eder.
Email()Email olup olmadığını kontrol eder.
EqualTo(‘password’)Bir başka alan ile aynı olup olmadığını kontrol eder.
IPAddress()IP adresi olup olmadığını kontrol eder.
URLURL olup olmadığını kontrol eder.

Şimdi formumuzun yeni haline bakalım.

Formumuzu oluşturduk şimdi formu ekleyeceğimiz sayfaya istek atacak fonksiyonu yazalım.

Formun olduğu register sayfasına istek atacak ve bize bunun karşılığında bir html sayfasını döndüren fonksiyonu yazdık şimdi html sayfasını yazalım.

Html sayfamızı yazdık ve  WTForms elamanlarını ekledik. Şimdi Aldığımız bilgileri başka bir sayfada gösterelim. Bunun için /users sayfasını oluşturalım. Bunun için ilk önce /users sayfasına istek atacak ve bunun karşılığında bize bir hmlt sayfası döndürecek fonksiyonumuzu yazalım.

Burada eğer attığımız istek POST ise form bilgilerini alacağımızı belirttik. Aldığımız bilgileri /users sayfasında döndürdük. Bunun için users()  fonksiyonun bize döndüreceği html sayfasını yazalım.

Kullanıcı bilgilerini göstereceğimiz html sayfasını da yazdık. Şimdi Flask projemizin kodlarına bakalım.

Şimdi projemizi çalıştıralım ve /register sayfasına gidelim.

Formu dolduktan sonra site bizi /users sayfasına yönlendiriyor.

Flask WTForms ile form bilgilerini başarılı bir şekilde aldık.

Bir dersin daha sonuna geldik. Eksik yada yanlış gördüğünüz yerler için yorum bölümünden veya soru – cevap kısmından ulaşabilirsiniz. Bir sonraki yazıda Flask Framework’te Flash messaging konusunu ele alacağız. Bir sonraki yazıda görüşmek üzere.

32

Cahit İşleyen

Data Scientist at @Embedica.ai
Python ve Linux sever.
Çay tiryakisi

4 Yorum

  • Merhabalar öncelikle seri için teşekkür ederim hocam. Seriyi biraz daha hızlandırır mısınız , özellikle sqlite3 ve sqlalchemy ile ilgili veritabanından üyelik işlemleri yada veritabanı ile ilgili detaylı konu anlatımı yaparmısınız

    • Merhabalar her hafta yazı yayınlamaya devam ediyoruz. Gelecek hafta veritabanı işlemleri yazısını yayınlayacağız.

  • Merhabalar
    validators foksiyonu bende çalışmadı register.html de de mesajları yazacağı labeller oluşturmadık.

    Benim anladığım kadrı ile validators fonksiyonu ile örneğin paralo ile porala tekara da ki değerler aynı olmadığı zaman bana uyarı vermesi gerekiyor ve kayıt almaması gerekiyor. Fakat validators foksiyon kodlarını kullandığım halde benim yaptığım projede kayıt aldı.

    Bu konuda yardımcı olursanız sevinirim.

    • password = PasswordField(‘Şifre’, validators=[DataRequired()],render_kw={“placeholder”: “Şifre”})
      confirm_password = PasswordField(‘Şifreyi doğrulayın’,
      validators=[DataRequired(), EqualTo(‘password’)],render_kw={“placeholder”: “Şifreyi doğrulayın”})

      EqualTo kullandınız mı?

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?