İçindekiler
Bina formları kullanılarak çok daha kolay hale getirilebilir. genel sınıflar nın-nin Django ancak, bazen tam mantığı kendi tarafımızda geliştirmemiz gerektiğinden, bunları her zaman kullanmayacağız.Neyse ki içinde Django Ayrıca formlarımızı nasıl işleyeceğimizi ve mantıklarını nasıl yöneteceğimizi de oluşturabiliriz, bununla çok daha kişiselleştirilmiş uygulamalara ulaşacağız ve hedeflerimize daha yakın olacağız.
Verilerin forma katılması
Formun kullanıcıdan veri almanın bir yolu olduğunu biliyoruz, bu nedenle iki durumumuz var., verili ve verisizForm veriye sahip olduğunda, işlemlerimizi yapacağımız zamandır, diğer yandan, hiçbir şeyi olmadığında, veri işleme için onu görmezden gelmeliyiz.
Egzersiz yapmakAşağıdaki alıştırmayı interaktif konsoldan yapacağız. Django, bir form oluşturacağız ve is_bound() yöntemi İlişkili bir verisi olup olmadığını doğrulayacağız, bu şekilde formun çerçeve içinde nasıl davrandığını biraz daha görebiliriz, sonuçları aşağıdaki resimde görelim:
Örnekte gördüğümüz gibi sadece is_bound yöntemini kullanırken değerleri forma aktardığımızda bir Doğru cevap.
Verileri doğrula
Bildiğimiz gibi, web üzerinde çalışıyorsak, kullanıcının girdiği veriler uygulamamıza karşı en etkili saldırı şekli olabilir, bunun nedeni bilgisizlik nedeniyle uygulamamızın kabul etmeye hazır olmadığı her türlü formatı girebilmesidir. ve bu nedenle ölümcül bir hatayla sonuçlanabilir, bundan kaçınmak için, verileri işlemeden önce her zaman güvenli olduğundan emin olmalıyız, bunun için aşağıdakileri kullanabiliriz:
def my_view (request): if request.method == 'POST': form = MyForm (request.POST, request.FILES) if form.is_valid (): #Veriler burada geçerliyse, uygulama mantığımıza devam edebiliriz else : # Aksi takdirde, nesneyi yalnızca veri formu olmadan sunarız = MyForm ()
Örnekte gördüğümüz gibi sınıfın bir örneğini yapıyoruz Formum ve gelen verileri birleştiriyoruz rica etmek, POST yöntemiyle ve türün yöntemleriyle DOSYALAR Bir resim veya başka bir tür dosya getirmemiz durumunda, modelimize bağlı olarak, formumuzun getirdiği şeyler değerlendirilmelidir, bunun için kullanırız. is_valid() yöntemi, bununla, bir sayının gelmesi gereken yere bir dize gelirse, bilgilerin reddedildiğinden ve ölümcül bir hataya neden olabilecek veritabanına ulaşmasına izin verilmediğinden emin oluruz.
Sınıf Bazlı Görünümler
Bir önceki örnekte gördüklerimizle şimdi benzer bir şeyi aşağıdakileri kullanarak nasıl uygulayabileceğimizi görebiliriz. Sınıf Bazlı Görünümler ve bu şekilde çerçeve araçlarını kullanın.
eğer kullanırsak Form Görünümü jenerik Django aşağıdaki koda benzer bir şey elde edebiliriz:
Django.shortcuts'tan içe aktarma oluşturma, Django.views.generic.edit'ten yönlendirme FormView sınıfı MyForm (FormView): form_class = MyForm template_name = 'form.html' Success_url = '/ başarı /' def form_valid (self, form): form .save () geri dön super (MyView, self) .form_valid (form)
Gördüğümüz gibi, formların gelişmiş kullanımı, uygulamaları daha dinamik ve daha kişisel hale getirmemizi sağlıyor ve bu sayede sadece birkaç satır kodla inanılmaz sonuçlar elde edebiliyoruz.Bu Eğitimi beğendiniz ve yardım ettiniz mi?Yazara olumlu puan vermek için bu düğmeye basarak yazarı ödüllendirebilirsiniz.