קוראים כמוך עוזרים לתמוך ב-MUO. כאשר אתה מבצע רכישה באמצעות קישורים באתר שלנו, אנו עשויים להרוויח עמלת שותף. קרא עוד.

הדרך הטובה ביותר לשלוט ב-Django היא להשתמש בו כדי לפתח יישומי ערימה מלאה. תתקל בתכונות מרתקות רבות כשאתה עובד עם המסגרת. אחד מהם הוא איך לעבד טפסים בתבניות באמצעות טפסים פריכים.

שימוש ב-django-crispy-forms הוא אחת מדרכים רבות שבהן ניתן לעבד טפסים ב-Django. התלות מאפשרת ליצור טפסים בתבניות מבלי לכתוב קוד HTML. אתה יכול בקלות לבנות פריסות לשימוש חוזר ללא הטרחה של כתיבת קוד טופס.

תוכל ללמוד עוד על ידי התקנת הספרייה, ולאחר מכן הגדרתה ושימוש בה ליצירת טופס הרשמה.

איך עובד צורות ג'נגו-קריספיות

ה ספריית django-crispy-forms מגיע עם קוד HTML מובנה שתוכל להתאים אישית לפי הצרכים שלך. הוא כולל מסנן בשם |קריספי שמציג טפסים מבוססי div בתבנית.

ה {% פריך %} תגיות יעבדו טפסים על פי setup.django-crispy-forms ספציפי עובד היטב עם תלות בתבניות אחרות כמו Bootstrap ו- Tailwind CSS.

בוא נראה איך זה עובד בתבנית.

התקן קריספי טפסים

התחל על ידי יצירת פרויקט ג'נגו ואפליקציה. לאחר מכן התקן את הגרסה האחרונה של django-crispy-forms באמצעות Pipenv עם הפקודה הבאה:

instagram viewer
pipenv להתקין צורות ג'נגו-קריספיות

התקנה מוצלחת תיראה כמו בתמונה למטה:

הגדר את ה-django-crispy-forms בהגדרות

לאחר ההתקנה, עליך לרשום טפסים פריכים כתלות בהגדרות הפרויקט. על ידי רישום זה, ספריית הטפסים הפריכה תהיה זמינה לכל האפליקציות בפרויקט.

בפרוייקט 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 המערכת מטפלת בדרישות נפוצות כמו אימות סיסמאות והנפקת הרשאות.

המערכת גם מטפלת עבורך באימות טפסים. אז אתה יכול ליצור טפסים בלי הטרחה בטיפול באימות בעצמך. אם ביצעת אימות טפסים במסגרות אחרות, תדע כמה זה יכול להיות מסורבל. לא עם ג'נגו.

למודול האימות יש א מִשׁתַמֵשׁ דגם או חפץ. ה מִשׁתַמֵשׁ אובייקט הוא המרכיב העיקרי של מערכת אימות המשתמש. הוא מטפל בהרשאות, אימות פרופילים של משתמשים רשומים, בקרת גישה ועוד הרבה יותר.

ה UserCreationForm משתמש במובנה מִשׁתַמֵשׁ מתנגד לרשום משתמשים חדשים. זה יורש מהמחלקה ModelForm.

ראשית, ייבא טפסים ממודול הטופס של Django. לאחר מכן, ייבא את ה UserCreationForm מ django.contrib.auth.forms. כמו כן, ייבא את המובנה מִשׁתַמֵשׁ דגם מ django.contrib.auth.models. לאחר מכן ייבא את קלט השדה מ-django ModelForm.

מ ג'נגו יְבוּא טפסים
מג'נגו.contrib.authטפסיםיְבוּאUserCreationForm
מג'נגו.contrib.auth.מודליםיְבוּאמִשׁתַמֵשׁ
מ django.forms יְבוּא ModelForm, TextInput, EmailInput, ImageField, Textarea

לאחר מכן, צור אובייקט רישום בשם RegisterUserForm. זה לוקח את UserCreationForm בתור טיעון. תוסיף את ה מִשׁתַמֵשׁ שדות אובייקט כגון אימות דואר אלקטרוני, שם משתמש ושתי סיסמאות.

מעמדRegisterUserForm(UserCreationForm):
מייל = טפסים. EmailField (max_length=254, help_text='נדרש. הכנס כתובת אימייל תקינה.')
מעמדמטא:
דגם = משתמש
שדות = ('שם משתמש', 'אימייל', 'סיסמה1', 'סיסמה2')

שדות אלה הם המאפיינים העיקריים של משתמש בטופס ההרשמה. הם כניסות חובה שמשתמשים חייבים למלא כדי שהמערכת תאמת אותם.

צור פונקציית תצוגה

לאחר מכן, תיצור פונקציית תצוגה עבור טופס ההרשמה. ראשית, ייבא את פונקציית העיבוד וכן את RegisterUserForm מ-forms.py. לאחר מכן ייבא את מִשׁתַמֵשׁ דגם מ django.contrib.auth.models.

פונקציית התצוגה בשם register לוקחת את RegisterUserForm. זה יציג את זה ב- register.html תבנית.

מ django.shortcuts יְבוּא לְדַקלֵם,
מ django.http יְבוּא HttpResponse, Http404
מ טפסים יְבוּא RegisterUserForm
מג'נגו.contrib.auth.מודליםיְבוּאמִשׁתַמֵשׁ
defהירשם(בַּקָשָׁה):
form=RegisterUserForm
context={'טופס':טופס}
החזר עיבוד (בקשה,'register.html',הֶקשֵׁר)

צור נתיב כתובת אתר

צור נתיב כתובת אתר בשביל ה register.html תבנית. כתובת האתר הזו היא הנתיב לפונקציית התצוגה שיצרת זה עתה. תן לזה את השם הירשם, כך שתוכל להשתמש בשם כדי לקרוא לו בתבנית.

מ django.urls יְבוּא נָתִיב
מ. יְבוּא צפיות
urlpatterns=[
נתיב ('הירשם', views.register, name='הירשם'),
]

טען על תבנית

כעת, לאחר שיש לך את נתיב התצוגה וכתובת האתר, אתה יכול ליצור את register.html תבנית בתיקיית האפליקציה. אתה תשתמש ב-django-crispy-forms כדי לעבד את RegisterUserForm.

בתוך ה register.html תבנית, האריך את base.html. ה base.html מכיל את קישורי Bootstrap תשתמש כדי לסגנן את טופס ההרשמה. לאחר מכן טען את ה-django-crispy-forms עם ה-register.html באמצעות תגיות תבנית.

{% מרחיב 'base.html' %}
{% load crispy_forms_tags %}
{% block content %}
<div class="מְכוֹלָה" סגנון="">
<div class="שׁוּרָה">
<div class="col-md-2"></div>
<div class="col-md-8">
<div class="כַּרְטִיס" סגנון="צבע שחור;">
<div class="גוף כרטיס">
<h5 class="כותרת כרטיס"><א>הירשם כדי להיות חבר<><span style="לצוף: נכון">האם אתה חבר? <a href="#" class="טקסט ראשוני">התחבר עכשיו<></span></h5>
<div class="טקסט-כרטיס">
<טופס פעולה="" שיטה="הודעה" לא לאמת>
{% csrf_token %}
{{ טופס|קריספי}}
<סוג כפתור="שלח" class="btn btn-primary btn-sm"> הירשם</button>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

הטופס כולל את csrf_token, אשר מגן על תהליך הרישום מפני האקרים. עבד את הטופס עם אותו שם משתנה כמו בפונקציית view. לאחר מכן הוסף את |פריך מסנן ל-Django {{טופס}} מִשְׁתַנֶה. זה יציג את הטופס כצורה פריכה.

הפעל את השרת. לאחר מכן, בדוק את האפליקציה בדפדפן בכתובת http://127.0.0.1:8000/register. אתה אמור לראות את הטופס המוצג כפי שמוצג להלן:

הצגת טופס הרשמה באמצעות טפסים פריכים! שימו לב ש-Django הוסיפה אוטומטית אימות לטופס. אלה כוללים דרישות כמו הרשאות שם משתמש וסיסמה.

כדי לקבל מערכת הרשמה מלאה, הוסף לוגיקת אימות לפונקציית התצוגה. אתה יכול גם להוסיף דף התחברות כדי להיכנס למשתמשים רשומים. המשתמשים צריכים לעמוד בדרישות האימות כדי להיכנס לאפליקציה.

ספריית django-crispy-forms מאפשרת לך לעבד טפסים מאומתים במהירות ובקלות. אימות נתונים מבטיח שיש לך נתונים מדויקים מהמשתמשים שלך.

הנתונים מועילים בעת תקשורת עם משתמשים וניתוח מדדי ביצועים.

למה להשתמש בצורות ג'נגו-קריספיות?

שימוש בספריית הטפסים הפריכה לעיבוד טפסים ב-Django הוא דוגמה מצוינת כיצד ליישם את עקרון ה- DRY. django-crispy-forms יוצר רכיבים ניתנים לשימוש חוזר שתוכלו לעבד בתבניות.

הם מגיעים עם קוד HTML מובנה. הקוד יחסוך לך את הטרחה של מבנה ואימות טפסים. טפסים פריכים מספקים תג ומסנן המציגים טפסים בפורמט div. הם גם מספקים את היכולת להגדיר ולשלוט ב-HTML המעובד.

django-crispy-forms עובד היטב עם מערכת האימות של Django. אתה יכול ליצור מערכת אימות כדי לאמת את המשתמשים שלך מבלי לכתוב הרבה קוד.