Django में महारत हासिल करने का सबसे अच्छा तरीका इसका उपयोग फुल-स्टैक एप्लिकेशन विकसित करने के लिए करना है। जब आप ढांचे के साथ काम करेंगे तो आपको कई आकर्षक विशेषताएं मिलेंगी। उनमें से एक यह है कि क्रिस्पी फॉर्म का उपयोग करके टेम्प्लेट में फॉर्म कैसे रेंडर करें।
Django-crispy-forms का उपयोग करना कई तरीकों में से एक है जिससे आप Django में फॉर्म प्रस्तुत कर सकते हैं। निर्भरता आपको HTML कोड लिखे बिना टेम्प्लेट में फ़ॉर्म बनाने की अनुमति देती है। आप फॉर्म कोड लिखने की परेशानी के बिना आसानी से पुन: प्रयोज्य लेआउट बना सकते हैं।
आप लाइब्रेरी को स्थापित करके, फिर इसे कॉन्फ़िगर करके और पंजीकरण फॉर्म बनाने के लिए इसका उपयोग करके और जान सकते हैं।
django-crispy-forms कैसे काम करता है
django-crispy-forms लाइब्रेरी बिल्ट-इन HTML कोड के साथ आता है जिसे आप अपनी आवश्यकताओं के अनुसार अनुकूलित कर सकते हैं। इसमें नाम का एक फिल्टर शामिल है |खस्ता जो टेम्पलेट में div-आधारित प्रपत्रों को प्रस्तुत करता है।
{% खस्ता%} टैग एक विशिष्ट सेटअप के अनुसार फॉर्म प्रस्तुत करेगा। django-crispy-form बूटस्ट्रैप और टेलविंड सीएसएस जैसी अन्य टेम्पलेट निर्भरताओं के साथ अच्छी तरह से काम करता है।
आइए देखें कि यह टेम्पलेट में कैसे काम करता है।
खस्ता फॉर्म स्थापित करें
से शुरू एक Django परियोजना बनाना और ऐप। फिर निम्नलिखित कमांड के साथ पिपेनव का उपयोग करके django-crispy-forms का नवीनतम संस्करण स्थापित करें:
पिपेनव स्थापित करना django-crispy-forms
एक सफल स्थापना नीचे दी गई तस्वीर की तरह दिखेगी:
सेटिंग्स में 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 उपयोगकर्ता प्रमाणीकरण सिस्टम सामान्य आवश्यकताओं को संभालता है जैसे पासवर्ड को मान्य करना और अनुमतियाँ जारी करना।
सिस्टम आपके लिए फॉर्म सत्यापन भी संभालता है। तो आप स्वयं सत्यापन को संभालने की परेशानी के बिना फॉर्म बना सकते हैं। यदि आपने अन्य रूपरेखाओं में प्रपत्र सत्यापन किया है, तो आप जानेंगे कि यह कितना बोझिल हो सकता है। Django के साथ नहीं।
प्रमाणीकरण मॉड्यूल में एक है उपयोगकर्ता मॉडल या वस्तु। उपयोगकर्ता ऑब्जेक्ट उपयोगकर्ता प्रमाणीकरण प्रणाली का मुख्य घटक है। यह अनुमतियों को संभालता है, पंजीकृत उपयोगकर्ताओं के प्रोफाइल को प्रमाणित करता है, अभिगम नियंत्रण और बहुत कुछ करता है।
UserCreationForm अंतर्निर्मित का उपयोग करता है उपयोगकर्ता नए उपयोगकर्ताओं को पंजीकृत करने पर आपत्ति। यह ModelForm वर्ग से प्राप्त होता है।
सबसे पहले, Django फॉर्म मॉड्यूल से फॉर्म आयात करें। फिर, आयात करें UserCreationForm से django.contrib.auth.forms. साथ ही, इन-बिल्ट आयात करें उपयोगकर्ता से मॉडल django.contrib.auth.models. फिर django ModelForm से फ़ील्ड इनपुट आयात करें।
से django आयात फार्म
सेdjangoयोगदान.प्रमाणीकरण.formsआयातUserCreationForm
सेdjangoयोगदान.प्रमाणीकरण।मॉडलआयातउपयोगकर्ता
से django.forms आयात मॉडलफॉर्म, टेक्स्ट इनपुट, ईमेल इनपुट, इमेजफिल्ड, टेक्स्टारिया
इसके बाद, नाम की एक पंजीकरण वस्तु बनाएँ रजिस्टरयूजरफॉर्म. यह लेता है UserCreationForm एक तर्क के रूप में। जोड़ें उपयोगकर्ता ऑब्जेक्ट फ़ील्ड जैसे ईमेल प्रमाणीकरण, उपयोगकर्ता नाम और दो पासवर्ड।
कक्षारजिस्टरयूजरफॉर्म(यूजर क्रिएशन फॉर्म):
ईमेल = फॉर्म। ईमेल फ़ील्ड (max_length=254, help_text='आवश्यक। एक मान्य ईमेल पता दर्ज करें।')
कक्षामेटा:
मॉडल = उपयोगकर्ता
क्षेत्र = ('उपयोगकर्ता नाम', 'ईमेल', 'पासवर्ड1', 'पासवर्ड2')
ये फ़ील्ड पंजीकरण फॉर्म पर उपयोगकर्ता की प्राथमिक विशेषताएँ हैं। वे अनिवार्य इनपुट हैं जिन्हें उपयोगकर्ताओं को प्रमाणित करने के लिए सिस्टम में भरना होगा।
व्यू फंक्शन बनाएं
अगला, आप पंजीकरण फॉर्म के लिए एक व्यू फंक्शन बनाएंगे। सबसे पहले, रेंडर फ़ंक्शन और साथ ही आयात करें रजिस्टरयूजरफॉर्म form.py से। फिर आयात करें उपयोगकर्ता से मॉडल django.contrib.auth.models.
रजिस्टर नाम का व्यू फंक्शन लेता है रजिस्टरयूजरफॉर्म. यह इसे पर रेंडर करेगा रजिस्टर.html टेम्पलेट।
से django.शॉर्टकट आयात प्रदान करना,
से django.http आयात एचटीटीपी रिस्पांस, एचटीटीपी404
से .forms आयात रजिस्टरयूजरफॉर्म
सेdjangoयोगदान.प्रमाणीकरण।मॉडलआयातउपयोगकर्ता
डीईएफ़पंजीकरण करवाना(अनुरोध):
फॉर्म = रजिस्टर यूजरफॉर्म
संदर्भ = {'प्रपत्र':प्रपत्र}
रिटर्न रेंडर (अनुरोध,'रजिस्टर.html',प्रसंग)
URL पथ बनाएँ
एक URL पथ बनाएँ के लिए रजिस्टर.html टेम्पलेट। यह यूआरएल आपके द्वारा अभी-अभी बनाए गए व्यू फंक्शन के लिए पाथ है। इसे नाम दें पंजीकरण करवाना, ताकि आप इसे टेम्पलेट पर कॉल करने के लिए नाम का उपयोग कर सकें।
से django.urls आयात पथ
से. आयात दृश्य
urlpatterns=[
पथ ('पंजीकरण करवाना', विचार। रजिस्टर, नाम ='पंजीकरण करवाना'),
]
टेम्पलेट पर लोड करें
अब जब आपके पास दृश्य और URL पथ है, तो आप बना सकते हैं रजिस्टर.html ऐप फ़ोल्डर में टेम्पलेट। रेंडर करने के लिए आप django-crispy-forms का उपयोग करेंगे रजिस्टरयूजरफॉर्म।
में रजिस्टर.html टेम्पलेट, का विस्तार करें आधार.html। आधार.html शामिल है बूटस्ट्रैप लिंक आप पंजीकरण फॉर्म को स्टाइल करने के लिए उपयोग करेंगे। फिर टेम्पलेट टैग का उपयोग कर register.html के साथ django-crispy-form लोड करें।
{% विस्तार करता है 'आधार.html' %}
{% लोड खस्ता_रूप_टैग%}
{% ब्लॉक सामग्री%}
<डिव क्लास ="CONTAINER" शैली ="">
<डिव क्लास ="पंक्ति">
<डिव क्लास ="कर्नल-एमडी-2"></div>
<डिव क्लास ="कोल-एमडी-8">
<डिव क्लास ="कार्ड" शैली ="रंग काला;">
<डिव क्लास ="कार्ड शरीर">
<h5 वर्ग ="कार्ड शीर्षक"><ए>सदस्य बनने के लिए पंजीकरण करें</ए><स्पैन स्टाइल ="सही नाव">क्या आप एक सदस्य हैं? <एक href="#" वर्ग ="पाठ-प्राथमिक">अभी लॉगिन करें</ए></span></h5>
<डिव क्लास ="कार्ड-पाठ">
<रूप क्रिया ="" विधि ="डाक" novalidate>
{% csrf_token %}
{{फॉर्म|खस्ता}}
<बटन प्रकार ="जमा करना" वर्ग ="बीटीएन बीटीएन-प्राथमिक बीटीएन-एसएम"> पंजीकरण करवाना</button>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
{% एंडब्लॉक%}
प्रपत्र शामिल है csrf_token, जो पंजीकरण प्रक्रिया को हैकर्स से बचाता है। फॉर्म को उसी चर नाम के साथ प्रस्तुत करें जैसा कि दृश्य फ़ंक्शन में है। फिर | जोड़ेंखस्ता Django के लिए फ़िल्टर करें {{प्रपत्र}} चर। यह फॉर्म को क्रिस्पी फॉर्म में रेंडर करेगा।
सर्वर चलाएँ। फिर, पर ब्राउज़र में ऐप को चेक करें http://127.0.0.1:8000/register. आपको नीचे दिखाए गए अनुसार प्रदर्शित प्रपत्र देखना चाहिए:
आपने क्रिस्पी फॉर्म का उपयोग करते हुए पंजीकरण फॉर्म प्रस्तुत किया है! ध्यान दें कि Django स्वचालित रूप से फॉर्म में सत्यापन जोड़ता है। इनमें उपयोगकर्ता नाम और पासवर्ड अनुमति जैसी आवश्यकताएं शामिल हैं।
एक पूर्ण साइन-अप सिस्टम रखने के लिए, व्यू फंक्शन में ऑथेंटिकेशन लॉजिक जोड़ें। आप पंजीकृत उपयोगकर्ताओं को साइन इन करने के लिए एक लॉगिन पृष्ठ भी जोड़ सकते हैं। ऐप में साइन इन करने के लिए उपयोगकर्ताओं को प्रमाणीकरण आवश्यकताओं को पूरा करना होगा।
django-crispy-forms लाइब्रेरी आपको सत्यापित रूपों को तेज़ी से और आसानी से प्रस्तुत करने देती है। डेटा का सत्यापन सुनिश्चित करता है कि आपके पास अपने उपयोगकर्ताओं का सटीक डेटा है।
उपयोगकर्ताओं के साथ संवाद करते समय और प्रदर्शन मेट्रिक्स का विश्लेषण करते समय डेटा काम आता है।
django-crispy-forms का उपयोग क्यों करें?
Django में फॉर्म रेंडर करने के लिए क्रिस्पी फॉर्म लाइब्रेरी का उपयोग करना DRY सिद्धांत को लागू करने का एक शानदार उदाहरण है। django-crispy-form पुन: प्रयोज्य घटक बनाता है जिसे आप टेम्पलेट्स में प्रस्तुत कर सकते हैं।
वे बिल्ट-इन HTML कोड के साथ आते हैं। कोड आपको संरचित करने और मान्य करने के झंझट से बचाएगा। खस्ता रूप एक टैग और फ़िल्टर प्रदान करते हैं जो एक div प्रारूप में रूपों को प्रस्तुत करता है। वे प्रदान किए गए HTML को कॉन्फ़िगर और नियंत्रित करने की क्षमता भी प्रदान करते हैं।
django-crispy-forms Django प्रमाणीकरण प्रणाली के साथ अच्छी तरह से काम करता है। आप अधिक कोड लिखे बिना अपने उपयोगकर्ताओं को सत्यापित करने के लिए प्रमाणीकरण प्रणाली बना सकते हैं।