Αναγνώστες σαν εσάς βοηθούν στην υποστήριξη του MUO. Όταν κάνετε μια αγορά χρησιμοποιώντας συνδέσμους στον ιστότοπό μας, ενδέχεται να κερδίσουμε μια προμήθεια θυγατρικών. Διαβάστε περισσότερα.

Ο καλύτερος τρόπος για να κυριαρχήσετε στο Django είναι να το χρησιμοποιήσετε για την ανάπτυξη εφαρμογών full-stack. Θα συναντήσετε πολλά συναρπαστικά χαρακτηριστικά όταν εργάζεστε με το πλαίσιο. Ένα από αυτά είναι πώς να αποδώσετε φόρμες σε πρότυπα χρησιμοποιώντας τραγανές φόρμες.

Η χρήση django-crispy-forms είναι ένας από τους πολλούς τρόπους με τους οποίους μπορείτε να αποδώσετε φόρμες στο Django. Η εξάρτηση σάς επιτρέπει να δημιουργείτε φόρμες σε πρότυπα χωρίς να γράφετε κώδικα HTML. Μπορείτε να δημιουργήσετε εύκολα επαναχρησιμοποιήσιμες διατάξεις χωρίς την ταλαιπωρία να γράψετε κώδικα φόρμας.

Μπορείτε να μάθετε περισσότερα εγκαθιστώντας τη βιβλιοθήκη, στη συνέχεια διαμορφώνοντάς την και χρησιμοποιώντας τη για να δημιουργήσετε μια φόρμα εγγραφής.

Πώς λειτουργεί το django-crispy-forms

ο βιβλιοθήκη django-crispy-forms

instagram viewer
έρχεται με ενσωματωμένο κώδικα HTML που μπορείτε να προσαρμόσετε ανάλογα με τις ανάγκες σας. Περιλαμβάνει ένα φίλτρο με το όνομα |τραγανό που αποδίδει φόρμες που βασίζονται σε div στο πρότυπο.

ο {% τραγανό %} Οι ετικέτες θα αποδίδουν φόρμες σύμφωνα με ένα συγκεκριμένο setup.django-crispy-forms λειτουργεί καλά με άλλες εξαρτήσεις προτύπων όπως το Bootstrap και το Tailwind CSS.

Ας δούμε πώς λειτουργεί σε ένα πρότυπο.

Εγκαταστήστε Crispy Forms

Ξεκινήστε από δημιουργώντας ένα έργο Django και εφαρμογή. Στη συνέχεια, εγκαταστήστε την πιο πρόσφατη έκδοση του django-crispy-forms χρησιμοποιώντας το Pipenv με την ακόλουθη εντολή:

pipenv εγκαθιστώ τζάνγκο-τραγανές-φόρμες

Μια επιτυχημένη εγκατάσταση θα μοιάζει με την παρακάτω εικόνα:

Διαμορφώστε τις φόρμες django-crispy- στις Ρυθμίσεις

Μετά την εγκατάσταση, πρέπει να καταχωρίσετε τραγανές φόρμες ως εξάρτηση στις ρυθμίσεις του έργου. Με την εγγραφή του, η βιβλιοθήκη τραγανών φορμών θα είναι διαθέσιμη σε όλες τις εφαρμογές του έργου.

Στο έργο settings.py αρχείο, προσθέστε τη συμβολοσειρά 'τραγανές_φόρμες':

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp',
'τραγανές_φόρμες',
]

Δημιουργήστε μια φόρμα

Πρέπει να συγχρονίσετε τη φόρμα εγγραφής σας με την ενσωματωμένη φόρμα δημιουργίας χρήστη Django για να σας βοηθήσει με τον έλεγχο ταυτότητας.

Το ενσωματωμένο Έλεγχος ταυτότητας χρήστη Django το σύστημα χειρίζεται κοινές απαιτήσεις όπως η επικύρωση κωδικών πρόσβασης και η έκδοση αδειών.

Το σύστημα χειρίζεται επίσης την επικύρωση φόρμας για εσάς. Έτσι, μπορείτε να δημιουργήσετε φόρμες χωρίς την ταλαιπωρία να χειριστείτε μόνοι σας την επικύρωση. Εάν έχετε κάνει επικύρωση φόρμας σε άλλα πλαίσια, θα ξέρετε πόσο δυσκίνητη μπορεί να είναι. Όχι με τον Django.

Η μονάδα ελέγχου ταυτότητας έχει ένα Χρήστης μοντέλο ή αντικείμενο. ο Χρήστης αντικείμενο είναι το κύριο στοιχείο του συστήματος ελέγχου ταυτότητας χρήστη. Διαχειρίζεται τα δικαιώματα, τον έλεγχο ταυτότητας των προφίλ εγγεγραμμένων χρηστών, τον έλεγχο πρόσβασης και πολλά άλλα.

ο UserCreationForm χρησιμοποιεί το ενσωματωμένο Χρήστης αντίρρηση για εγγραφή νέων χρηστών. Κληρονομείται από την κλάση ModelForm.

Πρώτα, εισαγάγετε φόρμες από τη μονάδα φόρμας Django. Στη συνέχεια, εισαγάγετε το UserCreationForm από django.contrib.auth.forms. Επίσης, εισάγετε το ενσωματωμένο Χρήστης μοντέλο από django.contrib.auth.models. Στη συνέχεια, εισαγάγετε τις εισόδους πεδίων από το django ModelForm.

από τζάνγκο εισαγωγή φόρμες
απότζάνγκο.συνεισφέρω.auth.έντυπαεισαγωγήUserCreationForm
απότζάνγκο.συνεισφέρω.auth.μοντέλαεισαγωγήΧρήστης
από django.μορφές εισαγωγή ModelForm, TextInput, EmailInput, ImageField, Textarea

Στη συνέχεια, δημιουργήστε ένα αντικείμενο εγγραφής με το όνομα RegisterUserForm. Παίρνει το UserCreationForm ως επιχείρημα. Πρόσθεσε το Χρήστης πεδία αντικειμένων όπως έλεγχος ταυτότητας email, όνομα χρήστη και δύο κωδικοί πρόσβασης.

τάξηRegisterUserForm(UserCreationForm):
email = έντυπα. EmailField (max_length=254, help_text='Απαιτείται. Εισάγετε μια έγκυρη διεύθυνση email.')
τάξηΜετα:
μοντέλο = Χρήστης
πεδία = ('όνομα χρήστη', 'ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ', 'κωδικός 1', 'κωδικός πρόσβασης 2')

Αυτά τα πεδία είναι τα κύρια χαρακτηριστικά ενός χρήστη στη φόρμα εγγραφής. Είναι υποχρεωτικές εισόδους που πρέπει να συμπληρώσουν οι χρήστες για να τις ελέγξει το σύστημα.

Δημιουργήστε μια λειτουργία προβολής

Στη συνέχεια, θα δημιουργήσετε μια συνάρτηση προβολής για τη φόρμα εγγραφής. Πρώτα, εισαγάγετε τη συνάρτηση render καθώς και το RegisterUserForm από το forms.py. Στη συνέχεια εισάγετε το Χρήστης μοντέλο από django.contrib.auth.models.

Η συνάρτηση προβολής με το όνομα καταχωρητής παίρνει το RegisterUserForm. Θα το αποδώσει στο register.html πρότυπο.

από django.συντομεύσεις εισαγωγή καθιστώ,
από django.http εισαγωγή HttpResponse, Http404
από .έντυπα εισαγωγή RegisterUserForm
απότζάνγκο.συνεισφέρω.auth.μοντέλαεισαγωγήΧρήστης
defκανω ΕΓΓΡΑΦΗ(αίτηση):
form=RegisterUserForm
πλαίσιο ={'μορφή':μορφή}
απόδοση επιστροφής (αίτημα,'register.html',συμφραζόμενα)

Δημιουργία διαδρομής URL

Δημιουργήστε μια διαδρομή URL για το register.html πρότυπο. Αυτή η διεύθυνση URL είναι η διαδρομή για τη συνάρτηση προβολής που μόλις δημιουργήσατε. Δώστε του το όνομα κανω ΕΓΓΡΑΦΗ, ώστε να μπορείτε να χρησιμοποιήσετε το όνομα για να το καλέσετε σε ένα πρότυπο.

από django.urls εισαγωγή μονοπάτι
από. εισαγωγή προβολές
urlpatterns=[
μονοπάτι ('κανω ΕΓΓΡΑΦΗ', views.register, name='κανω ΕΓΓΡΑΦΗ'),
]

Φόρτωση σε ένα πρότυπο

Τώρα που έχετε την προβολή και τη διαδρομή URL, μπορείτε να δημιουργήσετε το register.html πρότυπο στο φάκελο της εφαρμογής. Θα χρησιμοποιήσετε django-crispy-forms για να αποδώσετε το RegisterUserForm.

Στο register.html πρότυπο, επεκτείνετε το βάση.html. ο βάση.html περιέχει το Σύνδεσμοι Bootstrap θα χρησιμοποιήσετε για το στυλ της φόρμας εγγραφής. Στη συνέχεια, φορτώστε τις φόρμες django-crispy με το register.html χρησιμοποιώντας ετικέτες προτύπου.

{% επεκτείνεται 'βάση.html' %}
{% φόρτωση crispy_forms_tags %}
{% αποκλεισμός περιεχομένου %}
<div class="δοχείο" στυλ="">
<div class="σειρά">
<div class="col-md-2"></div>
<div class="col-md-8">
<div class="κάρτα" στυλ="χρωμα μαυρο;">
<div class="κάρτα-σώμα">
<h5 class="κάρτα-τίτλος"><ένα>Εγγραφείτε για να γίνετε μέλος</ένα><span style="float: δεξιά">Είσαι μέλος; <a href="#" τάξη="κείμενο-πρωτογενές">Συνδεθείτε τώρα</ένα></span></h5>
<div class="κάρτα-κείμενο">
<μορφή δράσης="" μέθοδος="ΘΕΣΗ" ακυρώνω>
{% csrf_token %}
{{ μορφή|τραγανό}}
<τύπος κουμπιού="υποβάλλουν" τάξη="btn btn-πρωτογενές btn-sm"> Κανω ΕΓΓΡΑΦΗ</button>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

Η φόρμα περιλαμβάνει το csrf_token, το οποίο προστατεύει τη διαδικασία εγγραφής από χάκερ. Αποδώστε τη φόρμα με το ίδιο όνομα μεταβλητής όπως στη συνάρτηση προβολής. Στη συνέχεια προσθέστε το |αφράτος φίλτρο στο Django {{μορφή}} μεταβλητός. Αυτό θα καταστήσει τη φόρμα ως τραγανή φόρμα.

Εκτελέστε τον διακομιστή. Στη συνέχεια, ελέγξτε την εφαρμογή σε ένα πρόγραμμα περιήγησης στο http://127.0.0.1:8000/register. Θα πρέπει να δείτε τη φόρμα που εμφανίζεται όπως φαίνεται παρακάτω:

Έχετε αποδώσει μια φόρμα εγγραφής χρησιμοποιώντας τραγανές φόρμες! Σημειώστε ότι το Django πρόσθεσε αυτόματα επικύρωση στη φόρμα. Αυτές περιλαμβάνουν απαιτήσεις όπως δικαιώματα χρήστη και κωδικού πρόσβασης.

Για να έχετε ένα πλήρες σύστημα εγγραφής, προσθέστε λογική ελέγχου ταυτότητας στη λειτουργία προβολής. Μπορείτε επίσης να προσθέσετε μια σελίδα σύνδεσης για να συνδεθείτε εγγεγραμμένοι χρήστες. Οι χρήστες θα πρέπει να πληρούν τις απαιτήσεις ελέγχου ταυτότητας για να συνδεθούν στην εφαρμογή.

Η βιβλιοθήκη django-crispy-forms σάς επιτρέπει να αποδίδετε γρήγορα και εύκολα επικυρωμένες φόρμες. Η επικύρωση δεδομένων διασφαλίζει ότι έχετε ακριβή δεδομένα από τους χρήστες σας.

Τα δεδομένα είναι χρήσιμα κατά την επικοινωνία με τους χρήστες και την ανάλυση μετρήσεων απόδοσης.

Γιατί να χρησιμοποιήσετε django-crispy-forms;

Η χρήση της βιβλιοθήκης crispy forms για την απόδοση φορμών στο Django είναι ένα εξαιρετικό παράδειγμα του τρόπου εφαρμογής της αρχής DRY. Το django-crispy-forms δημιουργεί επαναχρησιμοποιήσιμα στοιχεία που μπορείτε να αποδώσετε σε πρότυπα.

Έρχονται με ενσωματωμένο κώδικα HTML. Ο κωδικός θα σας γλιτώσει από την ταλαιπωρία της δομής και της επικύρωσης των φορμών. Οι τραγανές φόρμες παρέχουν μια ετικέτα και ένα φίλτρο που αποδίδει τις φόρμες σε μορφή div. Παρέχουν επίσης τη δυνατότητα διαμόρφωσης και ελέγχου του αποδοθέντος HTML.

Το django-crispy-forms λειτουργεί καλά με το σύστημα ελέγχου ταυτότητας Django. Μπορείτε να δημιουργήσετε ένα σύστημα ελέγχου ταυτότητας για να επαληθεύσετε τους χρήστες σας χωρίς να γράφετε πολύ κώδικα.