检测Django app的settings.py中的url方案

时间:2016-03-05 13:55:37

标签: django

我的Django网络应用允许用户通过HTTPHTTPS进行连接。我很好奇:有没有办法在 settings.py 中检测网址方案?如果是这样,怎么样?

1 个答案:

答案 0 :(得分:1)

这不能在 settings.py 文件中完成,因为它只包含常量和变量。它不处理请求。但这可以在中间件中完成。

这是一个中间件,它是检查URL方案的最简单形式:

class DetectUrlScheme(object):
    """ Middleware for detecting URL scheme """

    def process_request(self, request):
        if request.is_secure():
            # HTTPS
            # do something ...
        else:
            # HTTP
            # do something ...
        return

虽然,如果你只有几个观点,编写中间件似乎是一个开销。因此,您也可以在视图中检查URL方案。

def myview(request):
    if request.is_secure():
        # HTTPS
        # do something ...
    else:
        # HTTP
        # do something ...