मेजबान सर्वर के लिए नाम पाने के लिए Django का उपयोग कैसे करें?मेजबान सर्वर के लिए नाम पाने के लिए Django का उपयोग कैसे करें?
मुझे ग्राहक नाम के बजाय होस्टिंग सर्वर का नाम चाहिए?
मेजबान सर्वर के लिए नाम पाने के लिए Django का उपयोग कैसे करें?मेजबान सर्वर के लिए नाम पाने के लिए Django का उपयोग कैसे करें?
मुझे ग्राहक नाम के बजाय होस्टिंग सर्वर का नाम चाहिए?
मैं आम तौर पर settings.py
में कुछ इस तरह रखा), यदि कोई हो तो रिवर्स प्रॉक्सी हेडर खाते में लेना। अगर आपके पास कोई अनुरोध नहीं है, तो आपको अपनी सेटिंग्स में होस्टनाम को कहीं भी कॉन्फ़िगर करना चाहिए। बस सिस्टम होस्टनाम को देखकर कई मामलों में संदिग्ध हो सकता है, आभासी मेजबान सबसे आम हैं।
यदि आप डॉकर का उपयोग करते हैं, तो आपका समाधान काम नहीं करता है। यह यूआरएल के बजाय कंटेनर आईडी दिखाएगा। –
डॉकर मौजूद होने से पहले मेरा समाधान लिखा गया था। माफ़ कीजिये। –
सही समाधान 'request.get_host()' – Dorian
क्या आपने os.environ.get('HOSTNAME')
को आजमाया था?
import socket
try:
HOSTNAME = socket.gethostname()
except:
HOSTNAME = 'localhost'
आप एक अनुरोध है, तो (उदाहरण के लिए, इस के लिए एक दृश्य के अंदर है), तो आप request.get_host()
देख सकते हैं जो आप एक पूरा LOCNAME हो जाता है (मेजबान और पोर्ट:
बस @Tobu's answer पर जोड़ें। आप एक अनुरोध वस्तु है, और आप प्रोटोकॉल (अर्थात HTTP/HTTPS) जानना चाहते हैं, तो आप कर सकते हैं:
if request.is_secure():
protocol = 'https'
else:
protocol = 'http'
क्योंकि is_secure() रिटर्न True
यदि अनुरोध HTTPS के साथ बनाया गया था।
प्रतीत होता है कि आप बस [request.scheme] का उपयोग नहीं कर सकते (https://docs.djangoproject.com/en/dev/ref/request-response/#django.http .HttpRequest.scheme)? –
@RyneEverett धन्यवाद। इसके बारे में नहीं पता था (चेहरे)। – azalea
मुझे विश्वास नहीं है कि यह प्रक्रिया डीजे में इतनी गड़बड़ है। – zallarak