हालांकि यह पूरी तरह से एसओ भावना में नहीं है, मुझे यह सवाल बहुत पसंद है, क्योंकि जब मैंने शुरुआत की थी तो मुझे भी यही परेशानी थी, इसलिए मैं आपको एक त्वरित गाइड दूंगा। जाहिर है कि आप उनके पीछे के सिद्धांतों को नहीं समझते हैं (इसे अपराध के रूप में न लें, लेकिन अगर आपने किया तो आप पूछेंगे नहीं)।
Django सर्वर-साइड है । इसका मतलब है, कहते हैं कि एक ग्राहक एक URL पर जाता है, आपके पास एक फ़ंक्शन होता है views
जो HTML में एक प्रतिक्रिया को देखता है और उसे वापस देता है। चलो इसे उदाहरणों में तोड़ते हैं:
views.py:
def hello(request):
return HttpResponse('Hello World!')
def home(request):
return render_to_response('index.html', {'variable': 'world'})
index.html:
<h1>Hello {{ variable }}, welcome to my awesome site</h1>
urls.py:
url(r'^hello/', 'myapp.views.hello'),
url(r'^home/', 'myapp.views.home'),
यह सबसे सरल उपयोगों का एक उदाहरण है। के लिए जा रहे 127.0.0.1:8000/hello
साधन के लिए एक अनुरोध hello()
, समारोह के लिए जा रहा 127.0.0.1:8000/home
वापस आ जाएगी index.html
और के रूप में पूछा सभी चर की जगह (आप शायद अब तक यह सब जानते हैं)।
अब बात करते हैं AJAX की । AJAX कॉल क्लाइंट-साइड कोड है जो अतुल्यकालिक अनुरोध करता है। यह जटिल लगता है, लेकिन इसका सीधा मतलब है कि यह पृष्ठभूमि में आपके लिए एक अनुरोध करता है और फिर प्रतिक्रिया को संभालता है। इसलिए जब आप कुछ URL के लिए AJAX कॉल करते हैं, तो आपको वही डेटा मिलता है जो आपको उस स्थान पर जाने वाले उपयोगकर्ता के रूप में मिलेगा।
उदाहरण के लिए, एक AJAX कॉल 127.0.0.1:8000/hello
उसी चीज़ को लौटाएगी जैसा कि आप इसे देखने गए थे। केवल इस समय, आपके पास यह जावास्क्रिप्ट फ़ंक्शन के अंदर है और आप इससे निपट सकते हैं, हालांकि आप इसे पसंद करेंगे। आइए एक साधारण उपयोग के मामले को देखें:
$.ajax({
url: '127.0.0.1:8000/hello',
type: 'get', // This is the default though, you don't actually need to always mention it
success: function(data) {
alert(data);
},
failure: function(data) {
alert('Got an error dude');
}
});
सामान्य प्रक्रिया यह है:
- कॉल URL पर जाता है
127.0.0.1:8000/hello
जैसे कि आपने एक नया टैब खोला और स्वयं किया।
- यदि यह सफल होता है (स्थिति कोड 200), सफलता के लिए कार्य करें, जो प्राप्त आंकड़ों को सचेत करेगा।
- यदि विफल रहता है, तो एक अलग कार्य करें।
अब यहां क्या होगा? आपको इसमें 'हैलो वर्ल्ड' से अलर्ट मिलेगा। यदि आप घर पर AJAX कॉल करते हैं तो क्या होगा? एक ही बात, आप एक चेतावनी बताते मिल जाएगा <h1>Hello world, welcome to my awesome site</h1>
।
दूसरे शब्दों में - AJAX कॉल के बारे में कोई नई बात नहीं है। वे आपके लिए केवल एक तरीका है कि उपयोगकर्ता को पृष्ठ छोड़ने के बिना डेटा और जानकारी प्राप्त करने दें, और यह आपकी वेबसाइट के एक चिकनी और बहुत साफ डिजाइन के लिए बनाता है। कुछ दिशानिर्देशों पर आपको ध्यान देना चाहिए:
- JQuery जानें । मैं इस पर अधिक जोर नहीं दे सकता हूं। आपको यह जानने के लिए थोड़ा समझना होगा कि आपको प्राप्त डेटा को कैसे संभालना है। आपको कुछ मूल जावास्क्रिप्ट सिंटैक्स को समझने की आवश्यकता होगी (अजगर से दूर नहीं, आपको इसकी आदत हो जाएगी)। मैं दृढ़ता से jQuery के लिए Envato के वीडियो ट्यूटोरियल की सिफारिश करता हूं , वे महान हैं और आपको सही रास्ते पर डाल देंगे।
- JSON का उपयोग कब करें? । आप बहुत सारे उदाहरण देखने जा रहे हैं जहां Django के विचारों द्वारा भेजे गए डेटा JSON में हैं। मैं उस पर विस्तार से नहीं गया, क्योंकि यह महत्वपूर्ण नहीं है कि इसे कैसे किया जाए (स्पष्टीकरण बहुत सारे हैं) और बहुत अधिक महत्वपूर्ण जब । और इसका उत्तर है - JSON डेटा क्रमबद्ध डेटा है। यही है, डेटा आप हेरफेर कर सकते हैं। जैसा कि मैंने उल्लेख किया है, एक AJAX कॉल प्रतिक्रिया प्राप्त करेगी जैसे कि उपयोगकर्ता ने स्वयं किया था। अब कहते हैं कि आप सभी HTML के साथ गड़बड़ नहीं करना चाहते हैं, और इसके बजाय डेटा (शायद वस्तुओं की एक सूची) भेजना चाहते हैं। JSON इसके लिए अच्छा है, क्योंकि यह इसे एक ऑब्जेक्ट के रूप में भेजता है (JSON डेटा एक अजगर शब्दकोश की तरह दिखता है), और फिर आप इस पर पुनरावृति कर सकते हैं या कुछ और कर सकते हैं जो बेकार html के माध्यम से झारने की आवश्यकता को हटा देता है।
- इसे अंतिम में जोड़ें । जब आप एक वेब ऐप बनाते हैं और AJAX लागू करना चाहते हैं - तो अपने आप पर एक एहसान करें। सबसे पहले, पूरे ऐप को किसी भी AJAX से पूरी तरह से रहित बनाएं। देखें कि सब कुछ काम कर रहा है। फिर, और उसके बाद ही, AJAX कॉल लिखना शुरू करें। यह एक अच्छी प्रक्रिया है जो आपको बहुत कुछ सीखने में मदद करती है।
- क्रोम के डेवलपर टूल का उपयोग करें । चूंकि AJAX कॉल बैकग्राउंड में की जाती है, इसलिए उन्हें डिबग करना कभी-कभी बहुत कठिन होता है। आपको क्रोम डेवलपर टूल (या फायरबग जैसे समान उपकरण) और
console.log
डीबग करने के लिए चीजों का उपयोग करना चाहिए । मैं विस्तार से नहीं समझाऊंगा, बस गूगल के आसपास और इसके बारे में पता लगाऊंगा। यह आपके लिए बहुत मददगार होगा।
- CSRF जागरूकता । अंत में, याद रखें कि Django में पोस्ट अनुरोधों की आवश्यकता होती है
csrf_token
। AJAX कॉल के साथ, कई बार आप पृष्ठ को रीफ्रेश किए बिना डेटा भेजना चाहेंगे। शायद आपको कुछ परेशानी का सामना करना पड़ेगा, इससे पहले कि आप याद रखें कि - रुको, आप भेजना भूल गए csrf_token
। यह AJAX-Django एकीकरण में एक ज्ञात शुरुआती सड़क है, लेकिन जब आप सीखते हैं कि इसे कैसे खेलना अच्छा है, तो पाई के रूप में यह आसान है।
वह सब कुछ मेरे सिर आता है। यह एक बहुत बड़ा विषय है, लेकिन हाँ, शायद वहाँ पर्याप्त उदाहरण नहीं हैं। बस धीरे-धीरे वहां अपना काम करें, आप इसे अंततः प्राप्त करेंगे।