प्रतिक्रियाएं
te मेंsend चैनल पर उपयुक्त ASGI संदेश भेजने के लिए प्रतिक्रिया कक्षाएं हैं।
प्रतिक्रिया
हस्ताक्षर: Response(content, status_code=200, headers=None, media_type=None)
content- एक स्ट्रिंग या बाइट स्ट्रिंग।status_codeएक पूर्णांक HTस्थिति कोड।headers- स्ट्रिंग शब्दकोश।media_type- मीडिया प्रकार देने वाला एक स्ट्रिंग। उदाहरण के लिए: "text/html"
te में स्वचालित रूप से एक सामग्री-लंबाई हेडर शामिल होगा। इसमें मीडिया_टाइप के आधार पर एक सामग्री-प्रकार हेडर भी शामिल होगा और जब तक पाठ प्रकार पर सेट वर्ण को संलग्न नहीं किया जाएगा media_type वर्ण सेट में निर्दिष्ट किया गया है।
एक बार जब आप एक प्रतिक्रिया को तुरंत करते हैं, तो आप इसे ASGI एप्लिकेशन उदाहरण के रूप में कॉल करके भेज सकते हैं।
स्टारलेट से प्रतिक्रियाएं। आयात
Ac def ऐप (गुंजाइश, प्राप्त, भेजें):
गुंजाइश डालें ['type'] == 'htp'
प्रतिक्रिया = प्रतिक्रिया ('हैलो, दुनिया!', मीडिया_टाइप = 'टेक्स्ट / प्लेन')
प्रतिक्रिया की प्रतीक्षा (गुंजाइश, प्राप्त, भेजें)
कुकीज़ सेट करना
स्टारलेट ने ए प्रदान किया set_cookie विधि जो आपको प्रतिक्रिया ऑब्जेक्ट पर कुकीज़ सेट करने की अनुमति देती है।
हस्ताक्षर: Response.set_cookie(key, value, max_age=None, expires=None, path="/", domain=None, secure=False, httponly=False, samesite="lax")
keyएक स्ट्रिंग जिसे कुकी कुंजी के रूप में उपयोग किया जाएगा।valueएक स्ट्रिंग जिसे कुकी मान के रूप में उपयोग किया जाएगा।max_age- एक पूर्णांक जो कुकी के जीवनकाल को सेकंड में परिभाषित करता है। एक नकारात्मक पूर्णांक या मान है0कुकीज़ को तुरंत छोड़ दिया जाएगा।Optionalexpires- या तो एक पूर्णांक जो कुकी समाप्त होने से पहले सेकंड की संख्या को परिभाषित करता है, या एक तिथि और समय।Optionalpathमार्गों के सबसेट को निर्दिष्ट करने वाली एक स्ट्रिंग जिसमें कुकी लागू होगी।Optionaldomain- एक स्ट्रिंग उस क्षेत्र को निर्दिष्ट करती है जहां कुकी मान्य है।Optionalsecureएक बूलियन मान जो दर्शाता है कि कुकीज़ केवल सर्वर पर भेजी जाएंगी जब L और HTTप्रोटोकॉल का उपयोग करके अनुरोध किया जाता है।Optionalhttponly- एक बूलियन मान जो एक पास को दर्शाता हैDocument.cookieविशेषता,XMLHttpRequestयाRequestएपीआई, इस कुकी को aके माध्यम से एक्सेस नहीं किया जा सकता है।Optionalsamesite- कुकीज़ के लिए समानसाइट नीति निर्दिष्ट करने वाली एक स्ट्रिंग। वैध मान हैं'lax','strict'और'none'डिफ़ॉल्ट'lax'...Optional
कुकीज़ हटाएँ
इसके विपरीत, te मैन्युअल रूप से सेट कुकीज़ को समाप्त करने के लिए एक delete_cookie विधि भी प्रदान करता है।
हस्ताक्षर: Response.delete_cookie(key, path='/', domain=None)
प्रतिक्रिया
कुछ पाठ या बाइट्स प्राप्त करें और एक प्रतिक्रिया लौटाएं।
से te.आयात HT
Ac def ऐप (गुंजाइश, प्राप्त, भेजें):
गुंजाइश डालें ['type'] == 'htp'
प्रतिक्रिया = HT(')<html><body><h1>नमस्ते दुनिया!</h1></body></html>')
प्रतिक्रिया की प्रतीक्षा (गुंजाइश, प्राप्त, भेजें)
सादे पाठ प्रतिक्रिया
कुछ पाठ या बाइट्स प्राप्त करता है और एक सादे पाठ प्रतिक्रिया देता है।
से te.आयात T
Ac def ऐप (गुंजाइश, प्राप्त, भेजें):
गुंजाइश डालें ['type'] == 'htp'
प्रतिक्रिया = प्लेनटेक्स प्रतिक्रिया ('Hello, world!')
प्रतिक्रिया की प्रतीक्षा (गुंजाइश, प्राप्त, भेजें)
JSप्रतिक्रिया
कुछ डेटा प्राप्त करें और एक application/json-encoded प्रतिक्रिया लौटाएं।
से te.आयात JSONआयात
Ac def ऐप (गुंजाइश, प्राप्त, भेजें):
गुंजाइश डालें ['type'] == 'htp'
प्रतिक्रिया = JSON({'hello': 'world'})
प्रतिक्रिया की प्रतीक्षा (गुंजाइश, प्राप्त, भेजें)
कस्टम JSसीरियल
यदि आपको JSक्रमबद्ध पर ठीक अनाज नियंत्रण की आवश्यकता है, तो आप उपवर्ग कर सकते हैं JSONResponse और ओवरले render विधि।
उदाहरण के लिए, यदि आप किसी तृतीय-पक्ष JSलाइब्रेरी का उपयोग करना चाहते हैं, जैसे कि orjson:
टाइपिंग से कोई आयात
आयात orjson
से te.आयात JSONआयात
कक्षा json(JSONRespons):
Dरेंडर (स्व, सामग्री: कोई भी) -> बाइट्स:
orjson.dरिटर्न (सामग्री)
सामान्य तौर पर, जब तक आप किसी विशिष्ट समापन बिंदु को माइक्रो-ऑप्टिमाइज़ नहीं करना चाहते हैं या गैर-मानक ऑब्जेक्ट प्रकारों को क्रमबद्ध करने की आवश्यकता नहीं है, आप डिफ़ॉल्ट रूप से इसके साथ रहना चाह सकते हैं JSONResponse ...
पुनर्निर्देशित प्रतिक्रिया
HTपुनर्निर्देशित लौटाता है। 307 स्थिति कोड डिफ़ॉल्ट रूप से उपयोग किया जाता है।
से te.आयात PlainTextRespons, Retआयात
Ac def ऐप (गुंजाइश, प्राप्त, भेजें):
गुंजाइश डालें ['type'] == 'htp'
अगर गुंजाइश ['पथ']! = '/':
प्रतिक्रिया = पुनर्निर्देशन (url = '/')
अन्य:
प्रतिक्रिया = प्लेनटेक्स प्रतिक्रिया ('Hello, world!')
प्रतिक्रिया की प्रतीक्षा (गुंजाइश, प्राप्त, भेजें)
स्ट्रीमिंग प्रतिक्रिया
एक अतुल्यकालिक जनरेटर या एक सामान्य जनरेटर / पुनरावृत्त लें और प्रतिक्रिया निकाय को स्ट्रीम करें।
Streamingte.से आयात किया गया
आयात asyncio
Ac def slow_numbers (minimum, maximum):
यिल्ड '<html><body><ul>'
सीमा में संख्याओं के लिए (न्यूनतम, अधिकतम + 1):
यील्ड '<li>% d</li>'% संख्या
asyncio.नींद का इंतजार (0.5)
यिल्ड '</ul></body></html>'
Ac def ऐप (गुंजाइश, प्राप्त, भेजें):
गुंजाइश डालें ['type'] == 'htp'
जेनरेटर = धीमी_संख्या (1, 10)
प्रतिक्रिया = स्ट्रीमिंगरिस्पांस (जनरेटर, मीडिया_टाइप = 'टेक्स्ट/html')
प्रतिक्रिया की प्रतीक्षा (गुंजाइश, प्राप्त, भेजें)
कृपया ध्यान दें कि वर्ग फ़ाइल ऑब्जेक्ट (जैसा कि परिभाषित किया गया है) open() उन वस्तुओं को बनाया गया) साधारण पुनरावृत्त हैं। इसलिए, आप कर सकते हैं StreamingResponse उन्हें सीधे लौटाएं।
फ़ाइल प्रतिक्रिया
फ़ाइल को अतुल्यकालिक रूप से प्रतिक्रिया के रूप में स्ट्रीम करें।
स्थापना के लिए अन्य प्रतिक्रिया प्रकारों की तुलना में मापदंडों के एक अलग सेट की आवश्यकता होती है:
pathस्ट्रीम किए जाने वाले फ़ाइल का फ़ाइल पथ।headers- शब्दकोश के रूप में शामिल किए जाने वाले किसी भी कस्टम हेडर।media_type- मीडिया प्रकार देने वाला स्ट्रिंग। यदि सेट नहीं किया जाता है, तो मीडिया प्रकार का अनुमान लगाने के लिए फ़ाइल नाम या पथ का उपयोग किया जाएगा।filenameयदि सेट किया जाता है, तो इसे प्रतिक्रिया में शामिल किया जाएगाContent-Dispositionमें।content_disposition_typeप्रतिक्रिया में शामिल किया जाएगाContent-Dispositionमें। "अनुलग्नक" (default) या "आंतरिक कनेक्शन" पर सेट किया जा सकता है।
फ़ाइल प्रतिक्रिया में उपयुक्त होगा Content-Length , Last-Modified और ETag हेडर।
te.से आयात किया गया e
Ac def ऐप (गुंजाइश, प्राप्त, भेजें):
गुंजाइश डालें ['type'] == 'htp'
प्रतिक्रिया = e('स्टैटिक्स / favicon.ico')
प्रतिक्रिया की प्रतीक्षा (गुंजाइश, प्राप्त, भेजें)
तीसरे पक्ष की प्रतिक्रिया
घटना स्रोत प्रतिक्रिया
एक प्रतिक्रिया वर्ग जो सर्वर-भेजे गए ईवेंट को लागू करता है। यह की जटिलता के बिना सर्वर से क्लाइंट तक ईवेंट स्ट्रीमिंग को सक्षम करता है।
Baize.asgi। e
स्टारलेट के रूप में FileResponse यह स्वचालित रूप से हेड विधियों और रेंज अनुरोधों को संभाल लेगा।