代码之家  ›  专栏  ›  技术社区  ›  user984003

Django,获取方案(http或https),预请求。方案实施

  •  7
  • user984003  · 技术社区  · 8 年前

    如何从Django请求对象获取方案(http或https)?我正在使用Django 1.5,这是在请求之前。介绍了该方案。

    1 回复  |  直到 8 年前
        1
  •  19
  •   Ozgur Vatansever    3 年前

    您可以通过拨打 request.scheme 在视图中:

    def view(request):
        scheme = request.scheme
        ...
    

    或者,您也可以检查 .is_secure() 方法:

    def view(request):
        scheme = request.is_secure() and "https" or "http"
        ...            
    

    或者,您可以使用 .build_absolute_uri() 获取请求的绝对URI并使用解析 .urlsplit() 要检索方案:

    from django.utils.six.moves.urllib.parse import urlsplit
    
    def view(request):
        scheme = urlsplit(request.build_absolute_uri(None)).scheme
        ...