1
如何捕獲子域名的一部分,並通過請求在我的視圖中將該名稱作爲字符串獲取。Django |捕獲子域作爲字符串
例如:
user.domain.com
developer.domain.com
我想通過請求捕捉到了這個域名的user
部分(讓當第一次用戶點擊頁面說的)。
謝謝。
如何捕獲子域名的一部分,並通過請求在我的視圖中將該名稱作爲字符串獲取。Django |捕獲子域作爲字符串
例如:
user.domain.com
developer.domain.com
我想通過請求捕捉到了這個域名的user
部分(讓當第一次用戶點擊頁面說的)。
謝謝。
這可以使用middleware完成。
這是我一直在使用...
class SubdomainMiddleware:
""" Make the subdomain publicly available to classes """
def process_request(self, request):
domain_parts = request.get_host().split('.')
if (len(domain_parts) > 2) or (len(domain_parts) == 2 and domain_parts[1].find('localhost') != -1):
subdomain = domain_parts[0]
if (subdomain.lower() == 'www'):
subdomain = None
domain = '.'.join(domain_parts[1:])
else:
subdomain = None
domain = request.get_host()
request.subdomain = subdomain
request.domain = domain
我從什麼地方得到這個代碼,並修改了一些,但我不記得它最初是從。
只需將其放在某個文件的某個文件中,然後將其添加到settings.py
的MIDDLEWARE_CLASSES
列表中。
然後,只要有請求,您就可以使用request.subdomain
訪問子域(例如,在視圖中,我假設您將需要它)