अस्वीकरण
सामान्यतया मैं HTML प्रपत्र पुस्तकालयों के बारे में थोड़ा सावधान कर रहा हूँ। यदि आप मेगा-फ्रेमवर्क से कुछ उपयोग करते हैं, तो आपको हमेशा अपनी निर्भरता के रूप में पूरे मेगा-फ्रेमवर्क को लाने की ज़रूरत है।
कई मेगा-फ्रेमवर्क के कई उप-घटक ढांचे पर निर्भर नहीं होने का दावा करते हैं लेकिन चलो खुद को बच्चा नहीं देते हैं। यदि आप एक का उपयोग नहीं करते हैं, तो कम से कम एक दर्जन रूप पुस्तकालय हैं जिन्हें मैं क्षमताओं में भिन्नता के साथ वहां से बाहर जानता हूं। बस अकेले विकल्प काफी भ्रमित हो सकते हैं। आम तौर पर, इयान बेकिंग says कई साल पहले और अभी भी सच है, मुझे लगता है कि एक फॉर्म लाइब्रेरी की धारणा जो सभी को उपयुक्त बनाती है वह काफी लुभावनी है। असल में मैं तर्क दूंगा कि आपको वास्तव में एक की आवश्यकता होने से पहले दो बार सोचना होगा। संभावना है कि आपको उस समय की आवश्यकता है जब आपको FormEncode जैसे फॉर्म सत्यापन लायब्रेरी की आवश्यकता हो। यह वास्तव में इस बात पर निर्भर करता है कि आप इसका उपयोग कैसे करना चाहते हैं।
मेरे लिए, चूंकि मैं मेगा-फ्रेमवर्क का उपयोग नहीं करता, इसलिए मैं कुछ हल्का वजन, चुनने और कॉन्फ़िगर करने में आसान चुनता हूं, और ऐसा कुछ जो HTML के सामान्य उपयोग के रास्ते में नहीं मिलता है/जे एस/सीएसएस।
अंत अस्वीकरण
मैं ToscaWidgets, ToscaWidgets 2, Formish, Deform, WTForms और FormEncode कोशिश की है। मुझे कहना है कि उनमें से कोई भी सही के पास कहीं भी नहीं है। यहां उनके साथ मेरा अनुभव है:
- टोस्काविड्जेट्स, टोस्काविजेट्स 2 - बेहद शक्तिशाली, लेकिन यह भी बेहद जटिल है। ToscaWidgets 2 बहुत बेहतर है लेकिन यह अभी भी काफी अल्फा एटीएम है। सेटअप करने के लिए इसमें निंजा कौशल का थोड़ा सा हिस्सा लगता है और जब भी आपको डिफ़ॉल्ट टेम्पलेट्स को कस्टमाइज़ करने की आवश्यकता होती है तो आपका कोड काफी तेज़ हो जाता है।
- फॉर्मिश/विकृत - लगभग TW जितना शक्तिशाली लेकिन फॉर्मिश अब निष्क्रिय है। यह माको के लिए काफी कसकर बंधे हैं, इसलिए यदि आप मको का उपयोग नहीं करते हैं, तो शायद यह आपके लिए नहीं है। विकृति फॉर्मिश का एक पुनर्लेख है लेकिन यह ज़ोपे निर्भरताओं के टन में लाता है। जेएमपीटी के अलावा अन्य टेम्पलेटिंग भाषाओं का समर्थन करने के मामले में गिरगिट अभी भी काफी नहीं है। ये 2 पुस्तकालय भी सेटअप करने के लिए विशेष रूप से आसान नहीं हैं।
- WTForm - बहुत आसान, आपके रास्ते में नहीं मिलता है और यह विकास के मामले में बहुत सक्रिय है। यह उपर्युक्त पुस्तकालयों के रूप में कहीं भी शक्तिशाली नहीं है लेकिन यह आम तौर पर 80% उपयोग मामलों का ख्याल रखता है जो आप सामना कर सकते हैं, इसलिए यह काफी अच्छा है।
- फॉर्मएनकोड - 2005 से ट्राइड-एंड-सच। इसकी अच्छी तरह से परीक्षण, प्रीबिल्ट वैधताओं की सबसे बड़ी संख्या के साथ आता है, सशर्त सत्यापन का समर्थन करता है, और दर्जनों भाषाओं में उपयोगी त्रुटि संदेश का समर्थन करता है। इसमें मूल्यों और त्रुटि संदेशों के साथ पूर्वनिर्धारित HTML में फॉर्म कोड जेनरेट करने की एक बहुत ही सरल लेकिन केंद्रित क्षमता भी है। इसके नुकसान में कभी-कभी गैर-सहज ज्ञान युक्त एपीआई और इसकी बिल्कुल स्पैगेटी जैसी आंतरिक कोड शामिल होती है। हालांकि यह पुस्तकालय काफी भरोसेमंद है और सभी डेटा सत्यापन उपयोग मामलों में बहुत अच्छी तरह से फिट बैठता है और यह वह है जिसे मैं हमेशा वापस आ जाता हूं।
2012 के अंत तक, एक पाइथन सत्यापन पुस्तकालय के लिए एक त्वरित Google और पीईपीआई खोज सैकड़ों पैकेजों के साथ वापस आती है। एक दर्जन से अधिक उल्लेखनीय हैं, जो उन Django एक्सटेंशन को छूट देते हैं, जो सक्रिय विकास में हैं। JSON-Schema का उपयोग करके स्कीमा को परिभाषित करने और पाइथन डेटा संरचनाओं को सामान्य रूप से सत्यापित करने में सक्षम होने की प्रवृत्ति प्रतीत होती है। यह संभवतः सर्वर अनुप्रयोग डेवलपर्स के एकाधिक चैनलों (रीस्टफुल एपीआई और एचटीएमएल फॉर्म) से उपयोगकर्ता डेटा को स्वीकार करने के प्रतिबिंब का प्रतिबिंब है, लेकिन केवल एक सत्यापन पुस्तकालय का उपयोग करना चाहते हैं।
पायथन 3.3 की रिहाई को देखते हुए पाइथन 3.x का समर्थन करने के लिए मौजूदा पुस्तकालयों को बंद करने की दिशा में भारी आंदोलन की संभावना होगी (इसका फ्लिप पक्ष पुराने पुस्तकालयों को स्थिर कर रहा है और केवल पायथन 2.x के साथ संगत रहता है), यह पाइथन 3.x का समर्थन करने के लिए पहले से ही समर्थन करने या सक्रिय रूप से काम करने वाले व्यक्ति को चुनने के लिए बुद्धिमान हो सकता है।
आखिरकार, फॉर्म सत्यापन लायब्रेरी चुनते समय चिंता का एक और बड़ा क्षेत्र उपयोगी त्रुटि संदेशों की रिपोर्ट करने की क्षमता है, जिसमें हमेशा लंबे समय तक त्रुटि संदेशों के स्थानीयकरण की आवश्यकता शामिल होती है। अपने स्वयं के त्रुटि संदेशों की आपूर्ति करने में आसानी से लाइब्रेरी को आपके शेष वेब एप्लिकेशन आर्किटेक्चर के साथ एकीकृत करने की जटिलता निर्धारित होगी।
वादा उतार-आने वालों:
इस प्रश्न से 2 साल पहले पूछा गया था और उत्तर दिया गया था और वहां से कोई भी "अनुरोध बहस, तर्क, मतदान या विस्तारित चर्चा" में से कोई भी नहीं है जिसे आपने कहा था "संभावना" होगी। शायद थोड़ा अति उत्साही? –