2010-11-24 15 views
13

इसलिए मैं थोड़ी देर के लिए django के साथ खेल रहा हूं और मैं वास्तव में इस ढांचे की तरह करता हूं। हालांकि, मैं बेहतर समझना चाहता हूं कि यह वास्तव में 'कवर के तहत' कैसे काम करता है।मैं कैसे पता लगा सकता हूं कि django आंतरिक रूप से कैसे काम करता है?

यहाँ क्लाइंट-सर्वर-Django दुनिया की मेरी वर्तमान दृश्य, जो बहुत ही किसी न किसी तरह है और शायद अपने toenails कर्ल (खेद) कर देगा ...

  1. ब्राउज़र सर्वर को HTTP अनुरोध भेजता है।
  2. सर्वर अपने जादू करता है और CGI से django (?)
  3. django (कौन?) का कुछ हिस्सा अनुरोध प्राप्त करता है और इसे एक django अनुरोध ऑब्जेक्ट में बदल देता है।
  4. अनुरोध वस्तु मध्यस्थ के माध्यम से कुछ घबराहट पथों पर भटकती है जो इसके साथ अजीब चीजें करता है।
  5. अनुरोध ऑब्जेक्ट आखिरकार कुछ फ़ंक्शन (जो?) में समाप्त होता है जो यूआरएल को देखता है, पैटर्न को urls.py से बाहर ले जाता है और दृश्य फ़ंक्शन को कॉल करता है।
  6. दृश्य कार्य उनके जादू (मॉडलों और टेम्पलेट्स के साथ भागीदारों के रूप में) करते हैं, यह संभवत: मुझे समझने का सबसे मजबूत भ्रम है (अच्छी तरह से, डेटाबेस अबास्ट्रक्शन जादू के अलावा, ... है);
  7. व्यू फ़ंक्शन एक HttpResponse ऑब्जेक्ट देता है, मुझे लगता है कि यह CGI को कुछ घबराहट पथों पर वापस कर दिया गया है।
  8. वेबसर्वर फिर से लेता है और ग्राहक को एचटीपी प्रतिक्रिया भेजता है।

ठीक है, तो मेरा सवाल क्या है? खैर, यह सब कैसे काम करता है, वास्तव में? मैं उम्मीद कर रहा हूँ नहीं है कि आप मुझे सब कुछ चम्मच-खिलाने ... मुझे लगता है कि इस सवाल का जवाब अंत में "स्रोत, ल्यूक पढ़ें" करने के लिए किया जाएगा, हालांकि, मैं अगर

  1. तुम मेरे grosses स्पष्ट कर सकता आभारी होंगे misconseptions
  2. मुझे बताएं कि कहां से शुरू करना है? मैं जो करना चाहता हूं वह एक डीबगर है और बस दो बार प्रक्रिया के माध्यम से चलना है, लेकिन मुझे नहीं पता कि कहां से शुरू करना है
  3. आप मुझे इस दस्तावेज़ को इंगित करने वाले किसी दस्तावेज़ को इंगित कर सकते हैं ... हाँ , मैंने इस Google चीज के बारे में सुना है लेकिन वास्तव में कुछ भी उपयोगी नहीं पाया है।

बहुत बहुत शुक्रिया पॉल

उत्तर

6

पैकॉन 2015 से जेम्स बेनेट के Django in Depth ट्यूटोरियल देखें।

Pycon website से, यहां जेम्स 'बात का सार है:

अधिकांश किताबें, ट्यूटोरियल और Django के लिए अन्य प्रलेखन उसके घटकों और एपीआई के लिए एक उच्च स्तरीय दृष्टिकोण लेते हैं और इसलिए मुश्किल से की सतह खरोंच ढांचा। इस ट्यूटोरियल में, हम हुड के नीचे एक विस्तृत रूप ले लेंगे, जिसमें ओआरएम की गड़बड़ी से सबकुछ शामिल होगा, टेम्पलेट सिस्टम के अंदरूनी हिस्सों तक कि व्यवस्थापक इंटरफ़ेस वास्तव में कैसे काम करता है।

चाहे आप नए शौकियों या सबसे अधिक अनुभवी डेवलपर्स डेवलपर्स हैं, आप Django के गहरे ज्ञान के साथ आ जाएंगे, और नई युक्तियों और युक्तियों का एक बड़ा हिस्सा जो आप अपने अनुप्रयोगों में उपयोग कर सकते हैं।

+3

वर्तमान में डीआईडी ​​के रूप में व्यापक और गहराई के रूप में कोई अन्य मौलिक मौजूद नहीं है। बेनेट ने Django की हर सुविधा में एक नाखून चलाया। प्रस्तुति http://www.slideshare.net/ubernostrum/django-in-depth से स्लाइड्स (उनमें से 1025 में से) हैं। –

+0

स्लाइड के लिंक के लिए धन्यवाद KRON! जब मैंने 1025 पढ़ा तो मुझे थोड़ा डरा दिया, लेकिन ऐसा लगता है कि सभी ओवरले की गिनती है, इसलिए मुझे लगता है कि मैं उन्हें रात में जा सकता हूं;) – Paul

+0

पहला लिंक काम नहीं कर रहा है (गहराई में Django) –

11

ठीक है, आपकी पहली गलत धारणा है कि सीजीआई इस से कोई लेना देना नहीं है। यह बहुत ही असंभव और कम-उपयोग सर्वर कॉन्फ़िगरेशन को छोड़कर नहीं करता है।

अधिकांशतः, Django WSGI के माध्यम से सर्वर के साथ इंटरफेस करता है, जो वेब अनुप्रयोगों से बात करने के लिए वेब सर्वर के लिए एक पायथन विनिर्देश है। आप WSGI website पर अधिक जानकारी देख सकते हैं।

इसके अलावा, संपूर्ण अनुरोध/प्रतिक्रिया चक्र जेम्स बेनेट in his blog entry here द्वारा बहुत अच्छी तरह से वर्णित है। यह काफी पुराना है, लेकिन यह लिखा गया था कि उस स्तर पर Django में थोड़ा बदल गया है।

+0

अरे, दो लेखों के लिए धन्यवाद, बहुत उपयोगी! मैं वर्तमान में "जेम्स बेनेट" को देख रहा हूं ... तो डब्लूएसजीआई एक तरह का सीजीआई है (ठीक है, मुझे लगता है कि मुझे पढ़ना होगा;)) धन्यवाद! – Paul