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

How to capture the subdomain in a django view?

我正在用许多子域在 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. 如何在视图中获取 url。已回答 here
  2. 如何解析url。可以找到 here 如果你有 Python 3
  3. 最后,你需要get the subdomain from string

    从urllib.parse导入url解析

    url = request.META['HTTP_HOST']

    解析 = url解析(url)

    print(parse.netloc.split('.')[0])