Cara terbaik untuk menguasai Django adalah menggunakannya untuk mengembangkan aplikasi full-stack. Anda akan menemukan banyak fitur menarik saat bekerja dengan framework. Salah satunya adalah cara merender formulir di template menggunakan formulir yang renyah.
Menggunakan django-crispy-forms adalah salah satu dari banyak cara anda dapat merender formulir di Django. Ketergantungan memungkinkan Anda membuat formulir dalam templat tanpa menulis kode HTML. Anda dapat dengan mudah membuat tata letak yang dapat digunakan kembali tanpa perlu repot menulis kode formulir.
Anda dapat mempelajari lebih lanjut dengan menginstal pustaka, lalu mengonfigurasinya, dan menggunakannya untuk membuat formulir pendaftaran.
Bagaimana django-crispy-forms Bekerja
Itu perpustakaan django-crispy-forms hadir dengan kode HTML bawaan yang dapat Anda sesuaikan sesuai kebutuhan. Ini termasuk filter bernama
| renyah yang merender formulir berbasis div di template.Itu {% renyah %} tagsakan merender formulir sesuai dengan penyiapan tertentu. django-crispy-forms berfungsi dengan baik dengan dependensi templat lain seperti Bootstrap dan Tailwind CSS.
Mari kita lihat cara kerjanya di template.
Instal Formulir Renyah
Mulai oleh membuat proyek Django dan aplikasi. Kemudian instal versi terbaru django-crispy-forms menggunakan Pipenv dengan perintah berikut:
pipenv Install django-crispy-forms
Instalasi yang berhasil akan terlihat seperti gambar di bawah ini:
Konfigurasi django-crispy-forms di Pengaturan
Setelah penginstalan, Anda harus mendaftarkan formulir renyah sebagai ketergantungan dalam pengaturan proyek. Dengan mendaftarkannya, pustaka formulir yang renyah akan tersedia untuk semua aplikasi dalam proyek.
Dalam proyek pengaturan.py file, tambahkan string 'crispy_forms':
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp',
'crispy_forms',
]
Buat Formulir
Anda perlu menyinkronkan formulir pendaftaran Anda dengan formulir pembuatan pengguna Django bawaan untuk membantu pengesahan.
Built-in Otentikasi pengguna Django sistem menangani persyaratan umum seperti memvalidasi kata sandi dan mengeluarkan izin.
Sistem juga menangani validasi formulir untuk Anda. Jadi, Anda dapat membuat formulir tanpa repot menangani validasi sendiri. Jika Anda telah melakukan validasi formulir di kerangka kerja lain, Anda akan tahu betapa rumitnya hal itu. Tidak dengan Django.
Modul autentikasi memiliki a Pengguna model atau objek. Itu Pengguna objek adalah komponen utama dari sistem otentikasi pengguna. Ini menangani izin, mengautentikasi profil pengguna terdaftar, kontrol akses, dan banyak lagi.
Itu UserCreationForm menggunakan bawaan Pengguna keberatan untuk mendaftarkan pengguna baru. Itu mewarisi dari kelas ModelForm.
Pertama, impor formulir dari modul formulir Django. Kemudian, impor UserCreationForm dari django.contrib.auth.forms. Juga, impor bawaan Pengguna model dari django.contrib.auth.models. Kemudian impor input bidang dari Django ModelForm.
dari django impor formulir
daridjango.contrib.auth.formulirimporUserCreationForm
daridjango.contrib.auth.modelimporPengguna
dari django.forms impor ModelForm, TextInput, EmailInput, ImageField, Textarea
Selanjutnya, buat objek registrasi bernama DaftarUserForm. Dibutuhkan UserCreationForm sebagai argumen. Tambahkan Pengguna bidang objek seperti otentikasi email, nama pengguna, dan dua kata sandi.
kelasDaftarUserForm(UserCreationForm):
email = formulir. EmailField (max_length=254, help_text='Diperlukan. Masukkan alamat email yang valid.')
kelasMeta:
model = Pengguna
bidang = ('nama belakang', 'surel', 'kata sandi1', 'kata sandi2')
Bidang ini adalah atribut utama pengguna pada formulir pendaftaran. Itu adalah input wajib yang harus diisi pengguna agar sistem mengautentikasinya.
Buat Fungsi Tampilan
Selanjutnya, Anda akan membuat fungsi tampilan untuk formulir pendaftaran. Pertama, impor fungsi render serta DaftarUserForm dari forms.py. Kemudian impor Pengguna model dari django.contrib.auth.models.
Fungsi tampilan bernama register mengambil DaftarUserForm. Ini akan membuatnya di register.html templat.
dari django.shortcuts impor memberikan,
dari django.http impor HttpRespon, Http404
dari .formulir impor DaftarUserForm
daridjango.contrib.auth.modelimporPengguna
defdaftar(meminta):
form=DaftarUserForm
konteks={'membentuk':membentuk}
mengembalikan render (permintaan,'register.html',konteks)
Buat Jalur URL
Buat jalur URL Untuk register.html templat. URL ini adalah jalur untuk fungsi tampilan yang baru saja Anda buat. Beri nama daftar, sehingga Anda dapat menggunakan nama tersebut untuk memanggilnya di template.
dari django.urls impor jalur
dari. impor pandangan
urlpatterns=[
jalur ('daftar', tampilan.register, nama='daftar'),
]
Muat di Templat
Sekarang setelah Anda memiliki tampilan dan jalur URL, Anda dapat membuatnya register.html templat di folder aplikasi. Anda akan menggunakan django-crispy-forms untuk membuat DaftarUserForm.
Dalam register.html templat, perpanjang basis.html. Itu basis.html berisi Tautan bootstrap Anda akan gunakan untuk menata formulir pendaftaran. Kemudian muat django-crispy-forms dengan register.html menggunakan tag cetakan.
{% meluas 'basis.html' %}
{% memuat crisp_forms_tags %}
{% blokir konten %}
<kelas div="wadah" gaya="">
<kelas div="baris">
<kelas div="col-md-2"></div>
<kelas div="col-md-8">
<kelas div="kartu" gaya="warna hitam;">
<kelas div="badan kartu">
<kelas h5="card-title"><A>Daftar untuk menjadi anggota</A><rentang gaya ="mengambang: benar">Apakah kamu anggota? <a href="#" kelas="teks-primer">Masuk sekarang</A></span></h5>
<kelas div="kartu-teks">
<aksi bentuk="" metode="POS" tidak memvalidasi>
{% csrf_token %}
{{bentuk|renyah}}
<jenis tombol ="kirim" kelas="btn btn-primer btn-sm"> Daftar</button>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
{% blok akhir %}
Bentuknya meliputi csrf_token, yang melindungi proses pendaftaran dari peretas. Render form dengan nama variabel yang sama seperti pada fungsi view. Kemudian tambahkan |renyah filter ke Django {{membentuk}} variabel. Ini akan membuat bentuk menjadi bentuk yang renyah.
Jalankan server. Kemudian, periksa aplikasi di browser di http://127.0.0.1:8000/register. Anda akan melihat formulir yang ditampilkan seperti yang diilustrasikan di bawah ini:
Anda telah merender formulir pendaftaran menggunakan formulir renyah! Perhatikan bahwa Django secara otomatis menambahkan validasi ke formulir. Ini termasuk persyaratan seperti izin nama pengguna dan kata sandi.
Untuk memiliki sistem pendaftaran yang lengkap, tambahkan logika autentikasi ke fungsi tampilan. Anda juga dapat menambahkan halaman login untuk masuk pengguna terdaftar. Pengguna harus memenuhi persyaratan autentikasi untuk masuk ke aplikasi.
Pustaka django-crispy-forms memungkinkan Anda dengan cepat dan mudah merender formulir tervalidasi. Memvalidasi data memastikan Anda memiliki data yang akurat dari pengguna Anda.
Data berguna saat berkomunikasi dengan pengguna dan menganalisis metrik kinerja.
Mengapa Menggunakan django-crispy-forms?
Menggunakan perpustakaan formulir renyah untuk merender formulir di Django adalah contoh yang bagus tentang bagaimana menerapkan prinsip KERING. django-crispy-forms menciptakan komponen yang dapat digunakan kembali yang dapat anda render dalam cetakan.
Mereka datang dengan kode HTML bawaan. Kode ini akan menghemat kerumitan penataan dan validasi formulir. Formulir renyah menyediakan tag dan filter yang merender formulir dalam format div. Mereka juga menyediakan kemampuan untuk mengonfigurasi dan mengontrol HTML yang dirender.
django-crispy-forms bekerja dengan baik dengan sistem pengesahan Django. Anda dapat membuat sistem otentikasi untuk memverifikasi pengguna Anda tanpa menulis banyak kode.