2011-12-13 8 views
6

क्या यह पता लगाने का कोई तरीका है कि कोड के भीतर से Django उदाहरण किस पोर्ट को सुन रहा है?पता लगाएं कि कौन सा बंदरगाह Django उदाहरण चल रहा है?

+0

Django कोड के भीतर, या बाहरी प्रक्रिया (जैसे कमांड लाइन) से? Django कोड के भीतर – ivy

+0

। – exupero

उत्तर

9

आप HttpRequest के माध्यम से जानकारी प्राप्त कर सकते हैं। Django डॉक्स here चेकआउट करें।

इसे मेटा विशेषता के माध्यम से एक्सेस किया जा सकता है जो एक HTTP शब्दकोश है जिसमें HTTP शीर्षलेख जानकारी है।

उदाहरण:

def someView(request): 
    #Try printing to screen 
    print request.META['SERVER_PORT'] 
    ... 
    return(response) 
+0

क्या 'SERVER_PORT' विश्वसनीय रूप से मौजूद है, या क्या कोई खतरा है कि यह कभी-कभी अनुपस्थित होगा? – exupero

+0

अच्छी तरह से, जहां तक ​​मैं इसे बता सकता हूं, विकास सर्वर पर ठीक काम करेगा। मैंने अपाचे के तहत चलने का उपयोग करने की कोशिश नहीं की है। हालांकि मैं डबल चेक करने के लिए थोड़ा टेस्ट कोड लिखूंगा। अन्यथा, मुझे यकीन नहीं है कि आप अनुरोध ऑब्जेक्ट के बिना बिना और कैसे पता लगाएंगे। –

+3

क्या होगा यदि आप एक दृश्य में नहीं हैं? – johnboiles

3

शायद request.META['SERVER_PORT']

या आप एक दृश्य में नहीं हैं?

+12

क्या कोई समाधान नहीं है जब मैं एक दृश्य में नहीं हूं? – utapyngo

0

मैंने पाया अगर आप दृश्य से बाहर पोर्ट नंबर या 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 
+0

@utapyngo यह समाधान है जब आप एक दृश्य में नहीं हैं। –

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^