我有一个使用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。
答案 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