当前位置: 首页 > 面试题库 >

使Flask-Login的login_required为默认值的最佳方法

海叶秋
2023-03-14
问题内容

我现在使用Flask-Loginlogin_required装饰器。无论如何,使其成为默认行为Flask


问题答案:

我在仪器项目中做到了这一点。我使用before_request装饰器:

@app.before_request
def check_valid_login():
    login_valid = 'user' in session # or whatever you use to check valid login

    if (request.endpoint and 
        'static' not in request.endpoint and 
        not login_valid and 
        not getattr(app.view_functions[request.endpoint], 'is_public', False) ) :
        return render_template('login.html', next=request.endpoint)      

然后,我is_public()为无需登录即可访问的几个地方创建了一个装饰器:

def public_endpoint(function):
    function.is_public = True
    return function


 类似资料:
  • 问题内容: 我正在开发一个大型Django应用程序,其中绝大多数需要登录才能访问。这意味着我们在整个应用程序中都花了很多钱: 很好,只要我们记得将它添加到任何地方,它就可以很好地工作!可悲的是,有时我们忘记了,而且失败往往不是很明显。如果到视图的唯一链接是在@login_required页面上,则你不太可能注意到实际上无需登录即可进入该视图。但是,坏人可能会注意到,这是一个问题。 我的想法是反转系

  • 问题内容: def save_file(self, outputfilename = self.image_filename): self.file.read(outputfilename) .... 在第一行中给出。似乎Python不接受它。我该如何重写代码,以免引发异常? 问题答案: 使用默认值并检测到该值。

  • MATLAB被配置为在搜索用户可修改的动态路径之前搜索其静态java类路径。不幸的是,静态路径包含相当多的非常旧的公共库,因此如果您试图使用新版本,您可能最终加载错误的实现并得到错误。 从R2012b开始,MATLAB允许您通过将javaclasspath.txt文件放在preferences文件夹中来指定要添加到静态路径中的附加JAR,但这会将JAR添加到路径的末尾,而不允许您覆盖MATLAB中

  • Flask-SocketIO可以获得由Flask-Login维护的登陆信息。在一个正常的Flask-Login身份认证被使用的时候,login_user()函数将会被调用去记录用户会话中的用户,任何SocketIO连接都可以得到current_user上下文变量: @socketio.on('connect') def connect_handler(): if current_user.i

  • 我试着做一些看起来很简单的事情,但我找不到任何润肤露, 我有<代码>

  • 问题内容: 无法找到文档中的默认值 https://www.elastic.co/guide/zh-CN/elasticsearch/reference/current/query-dsl- minimum-should- match.html 是还是,还是取决于查询是否具有正义或上下文? 问题答案: 默认值取决于查询和上下文: :在查询上下文中且单独存在(否或) :在过滤器上下文中(例如,在查询