我试图在我的烧瓶应用程序中强制http到https,但我一直收到错误" Too Many Redirects"在我试图使用的两种方法中。我已经尝试过并阅读了类似的SO问题,但它还没有解决。 我做错了什么?
这是使用修饰函数的第一种方法:
def ssl_required(fn):
@wraps(fn)
def decorated_view(*args, **kwargs):
if request.is_secure:
return fn(*args, **kwargs)
else:
return redirect(request.url.replace("http://", "https://"))
return decorated_view
这是我的观点功能:
@main.route('/stats', methods=["GET", "POST"])
@ssl_required
@login_required
def stats():
users = User.query.all()
return render_template('stats.html', users=users)
这是第二种方法:
@auth.before_app_request
def before_request():
if request.url.startswith('http://'):
url = request.url.replace('http://', 'https://', 1)
code = 301
return redirect(url, code=code)
此功能的视图功能为:
@main.route('/stats', methods=["GET", "POST"])
@login_required
def stats():
users = User.query.all()
return render_template('stats.html', users=users)