Django 2.1 - How to deploy with WSGI

डब्ल्यूएसजीआई के साथ कैसे तैनात किया जाए




django

डब्ल्यूएसजीआई के साथ कैसे तैनात किया जाए

Django का प्राथमिक परिनियोजन प्लेटफॉर्म WSGI है , जो वेब सर्वर और अनुप्रयोगों के लिए पायथन मानक है।

Django का startproject मैनेजमेंट कमांड आपके लिए एक साधारण डिफ़ॉल्ट WSGI कॉन्फ़िगरेशन सेट करता है, जिसे आप अपनी परियोजना के लिए आवश्यकतानुसार ट्वीक कर सकते हैं, और किसी भी WSGI- अनुरूप एप्लिकेशन सर्वर का उपयोग करने के लिए निर्देशित कर सकते हैं।

Django में निम्नलिखित WSGI सर्वरों के लिए आरंभ-प्रारंभ प्रलेखन शामिल है:

application वस्तु

डब्लूएसजीआई के साथ तैनाती की प्रमुख अवधारणा application कॉल application योग्य है जिसे एप्लिकेशन सर्वर आपके कोड के साथ संचार करने के लिए उपयोग करता है। यह आमतौर पर पायथन मॉड्यूल में सर्वर के लिए सुलभ एक नामित application रूप में प्रदान किया जाता है।

startproject कमांड एक फ़ाइल बनाता है <project_name>/wsgi.py जिसमें ऐसा application <project_name>/wsgi.py application योग्य हो।

यह Django के विकास सर्वर और उत्पादन WSGI तैनाती दोनों द्वारा उपयोग किया जाता है।

WSGI सर्वर अपने कॉन्फ़िगरेशन से कॉल करने योग्य application लिए पथ प्राप्त करते हैं। Django का निर्मित सर्वर, अर्थात् runserver कमांड, इसे WSGI_APPLICATION सेटिंग से पढ़ता है। डिफ़ॉल्ट रूप से, यह <project_name>.wsgi.application सेट <project_name>.wsgi.application , जो <project_name>.wsgi.application करने योग्य application को <project_name>/wsgi.py

सेटिंग्स मॉड्यूल को कॉन्फ़िगर करना

जब WSGI सर्वर आपके एप्लिकेशन को लोड करता है, तो Django को सेटिंग्स मॉड्यूल को आयात करने की आवश्यकता होती है - यही वह जगह है जहां आपके पूरे एप्लिकेशन को परिभाषित किया गया है।

Django उचित सेटिंग्स मॉड्यूल का पता लगाने के लिए DJANGO_SETTINGS_MODULE पर्यावरण चर का उपयोग करता है। इसमें सेटिंग्स मॉड्यूल के लिए बिंदीदार पथ होना चाहिए। आप विकास और उत्पादन के लिए एक अलग मूल्य का उपयोग कर सकते हैं; यह सब इस बात पर निर्भर करता है कि आप अपनी सेटिंग्स को कैसे व्यवस्थित करते हैं।

यदि यह चर सेट नहीं होता है, तो डिफ़ॉल्ट wsgi.py इसे wsgi.py सेट करता है, जहाँ mysite आपके प्रोजेक्ट का नाम है। यह है कि कैसे runserver डिफ़ॉल्ट सेटिंग्स फ़ाइल को डिफ़ॉल्ट रूप से पता चलता है।

ध्यान दें

चूंकि पर्यावरण चर प्रक्रिया-व्यापक हैं, इसलिए जब आप एक ही प्रक्रिया में कई Django साइट चलाते हैं तो यह काम नहीं करता है। ऐसा mod_wsgi के साथ होता है।

इस समस्या से बचने के लिए, अपने स्वयं के डेमॉन प्रक्रिया में प्रत्येक साइट के साथ mod_wsgi के डेमॉन मोड का उपयोग करें, या अपने wsgi.py में os.environ["DJANGO_SETTINGS_MODULE"] = "mysite.settings" लागू करके पर्यावरण से मूल्य को ओवरराइड करें।

WSGI मिडलवेयर को लागू करना

WSGI मिडलवेयर को लागू करने के लिए आप बस एप्लिकेशन ऑब्जेक्ट को लपेट सकते हैं। उदाहरण के लिए आप इन पंक्तियों को wsgi.py के नीचे जोड़ सकते हैं:

from helloworld.wsgi import HelloWorldApplication
application = HelloWorldApplication(application)

यदि आप Django WSGI एप्लिकेशन को कस्टम WSGI एप्लिकेशन से बदल सकते हैं, जो बाद में Django WSGI एप्लिकेशन को सौंपता है, यदि आप किसी अन्य फ्रेमवर्क के WSGI एप्लिकेशन के साथ Django एप्लिकेशन को संयोजित करना चाहते हैं।