BottlyPy - 如何阅读UWSGI_SCHEME?

时间:2012-08-06 13:22:53

标签: python https nginx bottle

我有一个使用BottlePy运行的python应用程序。

此应用程序由Nginx路由:

listen 443;
ssl on;
...

location / {
    include uwsgi_params;
    uwsgi_param UWSGI_SCHEME https;
    uwsgi_pass unix:///var/run/uwsgi/uwsgi.sock;
}

因为我正在使用BottlePy微框架,所以我无法调用request.is_secure()(没有这样的方法)。

但是有没有办法从代码中读取UWSGI_SCHEME值?

我的目标是从代码中确保请求使用HTTPS。

2 个答案:

答案 0 :(得分:2)

request.environ确实是要走的路。

http://bottlepy.org/docs/dev/api.html#bottle.BaseRequest.environ

感谢 Mike 为我指明正确的方向。

print request.environ['wsgi.url_scheme']

将打印URL的方案:http / https ...

答案 1 :(得分:1)

我不确定is_secure请求方法的来源,但您可以使用WSGI环境编写自己的方法(request.environ

def is_secure(request):
    if request.environ['SERVER_PORT'] == '443':
        return True
    return False