我试图在我的烧瓶应用程序中强制 http 到 https,但在我尝试使用的两种方法中我不断收到错误“重定向过多”。我已经尝试并阅读了类似的 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
Run Code Online (Sandbox Code Playgroud)
这是我的视图函数:
@main.route('/stats', methods=["GET", "POST"])
@ssl_required
@login_required
def stats():
users = User.query.all()
return render_template('stats.html', users=users)
Run Code Online (Sandbox Code Playgroud)
这是第二种方法:
@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)
Run Code Online (Sandbox Code Playgroud)
这个视图函数是:
@main.route('/stats', methods=["GET", "POST"])
@login_required
def stats():
users = User.query.all()
return render_template('stats.html', users=users)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1068 次 |
| 最近记录: |