क्या यह पता लगाने का कोई तरीका है कि कोड के भीतर से Django उदाहरण किस पोर्ट को सुन रहा है?पता लगाएं कि कौन सा बंदरगाह Django उदाहरण चल रहा है?
उत्तर
आप HttpRequest के माध्यम से जानकारी प्राप्त कर सकते हैं। Django डॉक्स here चेकआउट करें।
इसे मेटा विशेषता के माध्यम से एक्सेस किया जा सकता है जो एक HTTP शब्दकोश है जिसमें HTTP शीर्षलेख जानकारी है।
उदाहरण:
def someView(request):
#Try printing to screen
print request.META['SERVER_PORT']
...
return(response)
क्या 'SERVER_PORT' विश्वसनीय रूप से मौजूद है, या क्या कोई खतरा है कि यह कभी-कभी अनुपस्थित होगा? – exupero
अच्छी तरह से, जहां तक मैं इसे बता सकता हूं, विकास सर्वर पर ठीक काम करेगा। मैंने अपाचे के तहत चलने का उपयोग करने की कोशिश नहीं की है। हालांकि मैं डबल चेक करने के लिए थोड़ा टेस्ट कोड लिखूंगा। अन्यथा, मुझे यकीन नहीं है कि आप अनुरोध ऑब्जेक्ट के बिना बिना और कैसे पता लगाएंगे। –
क्या होगा यदि आप एक दृश्य में नहीं हैं? – johnboiles
शायद request.META['SERVER_PORT']
या आप एक दृश्य में नहीं हैं?
क्या कोई समाधान नहीं है जब मैं एक दृश्य में नहीं हूं? – utapyngo
मैंने पाया अगर आप दृश्य से बाहर पोर्ट नंबर या IP पता जानने की जरूरत इस उपयोगी हो सकता है
import sys
import socket
logger.error(socket.gethostbyname(socket.gethostname())+"----"+sys.argv[-1])
(उदाहरण के लिए models.py में।) यह आपको नीचे जैसा आउटपुट देगा:
192.168.1.222----0.0.0.0:8000
@utapyngo यह समाधान है जब आप एक दृश्य में नहीं हैं। –
Django कोड के भीतर, या बाहरी प्रक्रिया (जैसे कमांड लाइन) से? Django कोड के भीतर – ivy
। – exupero