Django, 获取协议类型(http或https),预请求协议实施。

9
如何从Django请求对象中获取方案(http或https)?我正在使用Django 1.5,在引入request.scheme之前。
1个回答

22

您可以在视图中调用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
    ...

1
你也可以使用'request.scheme',它会返回HTTP或HTTPS。 - Peter Rosemann

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接