Uvicorn: FastAPI और Django के लिए ASGI सर्वर - पूरी गाइड

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Uvicorn: हाई-परफॉरमेंस ASGI सर्वर की संपूर्ण गाइड

Uvicorn क्या है?

Uvicorn एक आधुनिक, हल्का और हाई-परफॉरमेंस ASGI सर्वर है, जो Python में लिखा गया है। इसे विशेष रूप से एसिंक्रोनस वेब एप्लिकेशन चलाने के लिए डिज़ाइन किया गया है और यह Python एप्लिकेशन के लिए सबसे तेज़ सर्वरों में से एक है। Uvicorn, uvloop और httptools लाइब्रेरीज़ पर आधारित है, जो एक साथ कई रिक्वेस्ट को प्रोसेस करने में असाधारण परफॉरमेंस प्रदान करता है।

यह सर्वर HTTP/1.1, WebSocket जैसे आधुनिक वेब प्रोटोकॉल को सपोर्ट करता है और FastAPI, Starlette, Django Channels जैसे सभी ASGI-संगत फ्रेमवर्क के साथ काम कर सकता है।

मुख्य लाभ और विशेषताएं

आर्किटेक्चरल लाभ

Uvicorn वेब सर्वर की दुनिया में एक बड़ा कदम है, जिसमें ये खासियतें हैं:

कोर लेवल पर एसिंक्रोनसी — यह इवेंट-ड्रिवन आर्किटेक्चर का उपयोग करता है, जो न्यूनतम संसाधनों के साथ हज़ारों कनेक्शन को हैंडल कर सकता है।

उच्च प्रदर्शन — uvloop (asyncio का तेज़ इम्प्लीमेंटेशन) और httptools (तेज़ HTTP पार्सर) के साथ इंटीग्रेशन के कारण, Uvicorn Go और Node.js सर्वर के बराबर परफॉरमेंस देता है।

आधुनिक प्रोटोकॉल सपोर्ट — WebSocket, HTTP/1.1 के लिए नेटिव सपोर्ट, और अतिरिक्त प्रॉक्सी के ज़रिए HTTP/2 के साथ काम करने की क्षमता।

न्यूनतम सिस्टम आवश्यकताएं — डेवलपर की लोकल मशीन से लेकर प्रोडक्शन सर्वर तक, हर जगह ऑप्टिमाइज़्ड।

तकनीकी विशेषताएं

Uvicorn ASGI 3.0 स्पेसिफिकेशन को लागू करता है, जो इसे आधुनिक Python फ्रेमवर्क की विस्तृत श्रृंखला के साथ संगत बनाता है। यह डेवलपमेंट के दौरान कोड में बदलाव का ऑटोमैटिक डिटेक्शन, प्रोडक्शन के लिए मल्टी-प्रोसेस मोड और लचीली कॉन्फ़िगरेशन सिस्टम सपोर्ट करता है।

ASGI और WSGI में अंतर

सही सर्वर चुनने के लिए ASGI और WSGI के बीच अंतर समझना ज़रूरी है:

विशेषता WSGI (Web Server Gateway Interface) ASGI (Asynchronous Server Gateway Interface)
एक्ज़ीक्यूशन मॉडल सिंक्रोनस, ब्लॉकिंग एसिंक्रोनस, नॉन-ब्लॉकिंग
async/await सपोर्ट नहीं पूरा सपोर्ट
WebSocket सपोर्ट नहीं करता नेटिव सपोर्ट
HTTP/2 सीमित सपोर्ट पूरा सपोर्ट
बैकग्राउंड टास्क अलग प्रोसेस चाहिए बिल्ट-इन सपोर्ट
प्रदर्शन थ्रेड्स की संख्या से सीमित इवेंट लूप के कारण उच्च
सर्वर के उदाहरण Gunicorn, uWSGI, mod_wsgi Uvicorn, Hypercorn, Daphne
फ्रेमवर्क Flask, Django (3.0 से पहले), Bottle FastAPI, Starlette, Django 3.0+, Quart

ASGI, WSGI का विकसित रूप है, जो हाई-परफॉरमेंस और रियल-टाइम फीचर्स वाले आधुनिक वेब एप्लिकेशन के लिए डिज़ाइन किया गया है।

इंस्टॉलेशन और शुरुआती सेटअप

pip के ज़रिए इंस्टॉलेशन

pip install uvicorn

अतिरिक्त डिपेंडेंसी के साथ इंस्टॉलेशन

# अधिकतम प्रदर्शन के लिए
pip install uvicorn[standard]

# इसमें uvloop, httptools, websockets, watchgod, python-dotenv शामिल हैं

मिनिमल एप्लिकेशन उदाहरण

main.py फ़ाइल बनाएं:

fro                    

अनुशंसाएँ