Django’da ustalaşmanın en iyi yolu, onu tam yığın uygulamalar geliştirmek için kullanmaktır. Çerçeve ile çalışırken birçok büyüleyici özellikle karşılaşacaksınız. Bunlardan biri, çıtır formlar kullanılarak şablonlardaki formların nasıl oluşturulacağıdır.
Django-crispy-forms kullanmak, Django’da formları işlemenin birçok yolundan biridir. Bağımlılık, HTML kodu yazmadan şablonlarda formlar oluşturmanıza olanak tanır. Form kodu yazma zahmetine girmeden kolayca yeniden kullanılabilir mizanpajlar oluşturabilirsiniz.
Kitaplığı yükleyerek, ardından yapılandırarak ve bir kayıt formu oluşturmak için kullanarak daha fazla bilgi edinebilirsiniz.
Django-crispy-forms Nasıl Çalışır?
Django-crispy-forms kitaplığı, ihtiyaçlarınıza göre özelleştirebileceğiniz yerleşik HTML koduyla birlikte gelir. Şablonda div tabanlı formları işleyen |crispy adlı bir filtre içerir .
{% gevrek %} etiketleri , formları belirli bir kuruluma göre oluşturacaktır. django-crispy-forms, Bootstrap ve Tailwind CSS gibi diğer şablon bağımlılıklarıyla iyi çalışır.
Bunun bir şablonda nasıl çalıştığını görelim.
Çıtır Formları Kurun
Bir Django projesi ve uygulaması oluşturarak başlayın . Ardından, aşağıdaki komutla Pipenv kullanarak django-crispy-forms’un en son sürümünü yükleyin:
pipenv install django-crispy-forms
Başarılı bir kurulum aşağıdaki resimdeki gibi görünecektir:
başarılı django-crispy-form kurulumu
Django-crispy-forms’u Ayarlar’da yapılandırın
Kurulumdan sonra, gevrek formları proje ayarlarında bir bağımlılık olarak kaydetmeniz gerekir. Kaydolduğunuzda, gevrek formlar kitaplığı projedeki tüm uygulamalar tarafından kullanılabilir olacaktır.
settings.py projesi dosyasına ‘crispy_forms’ dizesini ekleyin :
INSTALLED_APPS = [n ‘django.contrib.admin’,n ‘django.contrib.auth’,n ‘django.contrib.contenttypes’,n ‘django.contrib.sessions’,n ‘django.contrib.messages’,n ‘django.contrib.staticfiles’,n ‘myapp’,n ‘crispy_forms’,n]
Form Oluştur
Kimlik doğrulamaya yardımcı olması için kayıt formunuzu yerleşik Django kullanıcı oluşturma formuyla senkronize etmeniz gerekir.
Yerleşik Django kullanıcı kimlik doğrulama sistemi, parolaları doğrulamak ve izinler vermek gibi genel gereksinimleri karşılar.
Sistem aynı zamanda sizin için form doğrulamasını da gerçekleştirir. Böylece, doğrulamayı kendi başınıza halletme zahmetine girmeden formlar oluşturabilirsiniz. Diğer çerçevelerde form doğrulaması yaptıysanız, bunun ne kadar hantal olabileceğini bilirsiniz. Django ile değil.
Kimlik doğrulama modülünün bir Kullanıcı modeli veya nesnesi vardır. Kullanıcı nesnesi, kullanıcı kimlik doğrulama sisteminin ana bileşenidir. İzinleri, kayıtlı kullanıcıların profillerini doğrulamayı, erişim kontrolünü ve çok daha fazlasını yönetir.
UserCreationForm , yeni kullanıcıları kaydetmek için yerleşik User nesnesini kullanır. ModelForm sınıfından miras alır.
İlk olarak, Django form modülünden formları içe aktarın. Ardından, UserCreationForm’u django.contrib.auth.forms adresinden içe aktarın . Ayrıca, yerleşik Kullanıcı modelini django.contrib.auth.models adresinden içe aktarın . Ardından alan girişlerini Django ModelForm’dan içe aktarın.
from django import formsnfrom django.contrib.auth.forms import UserCreationFormnfrom django.contrib.auth.models import Usernfrom django.forms import ModelForm, TextInput, EmailInput,ImageField, Textarea
Ardından, RegisterUserForm adlı bir kayıt nesnesi oluşturun . UserCreationForm’u bağımsız değişken olarak alır . E-posta kimlik doğrulaması, kullanıcı adı ve iki parola gibi Kullanıcı nesnesi alanlarını ekleyin .
class RegisterUserForm(UserCreationForm):n email = forms.EmailField(max_length=254, help_text=’Required. Enter a valid email address.’)n class Meta:n model = Usern fields = (‘username’, ’email’, ‘password1’, ‘password2’)
Bu alanlar, bir kullanıcının kayıt formundaki birincil nitelikleridir. Bunlar, sistemin kimliklerini doğrulaması için kullanıcıların doldurması gereken zorunlu girdilerdir.
Bir Görünüm İşlevi Oluşturun
Ardından, kayıt formu için bir görüntüleme işlevi oluşturacaksınız. İlk önce, biçimleme işlevini ve RegisterUserForm’u formlar.py’den içe aktarın. Ardından django.contrib.auth.models adresinden Kullanıcı modelini içe aktarın .
register adlı görüntüleme işlevi RegisterUserForm’u alır . Register.html şablonunda işleyecektir .
from django.shortcuts import render,nfrom django.http import HttpResponse,Http404nfrom .forms import RegisterUserFormnfrom django.contrib.auth.models import Userndef register(request):n form=RegisterUserFormn context={‘form’:form}n return render(request,’register.html’,context)n
URL Yolu Oluştur
register.html şablonu için bir URL yolu oluşturun. Bu URL, az önce oluşturduğunuz görüntüleme işlevinin yoludur. Ona register adını verin , böylece adı bir şablonda çağırmak için kullanabilirsiniz.
from django.urls import pathnfrom . import viewsnurlpatterns=[n path (‘register’, views.register, name=’register’),n]n
Bir Şablona Yükle
Artık görünüm ve URL yoluna sahip olduğunuza göre , uygulama klasöründe register.html şablonunu oluşturabilirsiniz. RegisterUserForm’u işlemek için django-crispy-forms kullanacaksınız .
register.html şablonunda base.html’yi genişletin . base.html , kayıt formuna stil vermek için kullanacağınız Bootstrap bağlantılarını içerir . Ardından, şablon etiketlerini kullanarak django-crispy-forms’u register.html ile yükleyin.
{% extends ‘base.html’ %}n{% load crispy_forms_tags %}n{% block content %}n<div class=”container” style=””>n <div class=”row”>n <div class=”col-md-2″></div>n <div class=”col-md-8″>n <div class=”card” style=”color:black;”>n <div class=”card-body”>n <h5 class=”card-title”><a>Register to be a member</a> <span style=”float:right”>Are you a member? <a href=”#” class=”text-primary”>Login now</a></span></h5>n <div class=”card-text”>n <form action=”” method=”POST” novalidate>n {% csrf_token %}n {{ form|crispy}}n <button type=”submit” class=”btn btn-primary btn-sm”> Register</button>n </form>n </div>n </div>n </div>n </div>n </div>n </div>n</div>n{% endblock %}
Form , kayıt sürecini bilgisayar korsanlarından koruyan csrf_token içerir . Formu, görünüm işlevindekiyle aynı değişken adıyla işleyin. Ardından | Django { {form}} değişkenine net filtre . Bu, formu gevrek bir form haline getirecektir.
Sunucuyu çalıştırın. Ardından, http :// 127 adresindeki bir tarayıcıda uygulamayı kontrol edin . 0 . 0 . 1 : 8000 / kayıt . Aşağıda gösterildiği gibi görüntülenen formu görmelisiniz:
tarayıcıda görüntülenen kayıt formu
Çıtır formları kullanarak bir kayıt formu oluşturdunuz! Django’nun doğrulamayı forma otomatik olarak eklediğine dikkat edin. Bunlar, kullanıcı adı ve parola izinleri gibi gereksinimleri içerir.
Eksiksiz bir kayıt sistemine sahip olmak için görüntüleme işlevine kimlik doğrulama mantığı ekleyin. Kayıtlı kullanıcılarda oturum açmak için bir oturum açma sayfası da ekleyebilirsiniz. Kullanıcıların uygulamada oturum açmak için kimlik doğrulama gereksinimlerini karşılaması gerekir.
Django-crispy-forms kitaplığı, doğrulanmış formları hızlı ve kolay bir şekilde işlemenizi sağlar. Verilerin doğrulanması, kullanıcılarınızdan doğru verilere sahip olmanızı sağlar.
Veriler, kullanıcılarla iletişim kurarken ve performans ölçümlerini analiz ederken kullanışlı olur.
Neden django-crispy-forms kullanıyorsunuz?
Django’da formları işlemek için gevrek formlar kitaplığını kullanmak, DRY ilkesinin nasıl uygulanacağına dair harika bir örnektir. django-crispy-forms, şablonlarda işleyebileceğiniz yeniden kullanılabilir bileşenler oluşturur.
Yerleşik HTML koduyla gelirler. Kod, sizi formları yapılandırma ve doğrulama zahmetinden kurtaracaktır. Gevrek formlar, formları div biçiminde işleyen bir etiket ve filtre sağlar. Ayrıca, işlenmiş HTML’yi yapılandırma ve kontrol etme yeteneği sağlarlar.
django-crispy-forms , Django kimlik doğrulama sistemiyle iyi çalışır. Çok fazla kod yazmadan kullanıcılarınızı doğrulamak için bir kimlik doğrulama sistemi oluşturabilirsiniz.