2017-10-11 104 views
0

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

有没有什么方法可以捕获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) 

回答

0

基本上,这个问题由三个部分组成:

  1. 如何获得网址在视图中。已回答here
  2. 如何解析网址。可以发现here如果你有Python的3
  3. 最后,你需要get the subdomain from string

    从进口的urllib.parse里urlparse

    URL = request.META [ 'HTTP_HOST']

    解析=里urlparse (URL)

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