如何在django视图中捕获子域?

时间:2017-10-11 16:22:45

标签: python django django-views subdomain views

我正在使用许多子域在django中开发一个应用程序。例如www.mysite.com,mx.mysite.com,es.mysite.com,nz.mysite.com 所有这些模式都必须重定向到相同的django应用程序,并使用国家/地区语言呈现html页面。

有没有办法在views.py中捕获子域?

我想在views.py中找到类似的东西:

######## VIEWS.PY ###########
def hompage(request):
    subdomain = #HERE IS WHERE I WANT TO CAPTURE THE SUBDOMAIN 
    if subdomain=='www':
        contextdict = {"Language": "English"}
    else if subdomain=='mx':
        contextdict = {"Language": "Spanish"}
    return render(request, 'mysite/index.html', contextdict)

1 个答案:

答案 0 :(得分:1)

基本上,问题包括三个部分:

  1. 如何在视图中获取网址。已回答here
  2. 如何解析网址。如果您有Python 3
  3. ,可以找到here
  4. 最后,您需要get the subdomain from string

    来自urllib.parse import urlparse

    url = request.META ['HTTP_HOST']

    parse = urlparse(url)

    打印(parse.netloc.split( '')[0])