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

在请求之前添加flask-为特定路线添加例外

吴涵育
2023-03-14
问题内容

before_request()下面的函数中,/login如果用户尚未登录,我想将其重定向到。是否有一个特殊的变量可以为我提供当前的URL,该URL可以像下面的示例那样工作?

    @app.before_request
    def before_request():
        # the variable current_url does not exist
        # but i want something that works like it
        if (not 'logged_in' in session) and (current_url != '/login'):
            return redirect(url_for('login'))

我需要检查当前URL是否为/login,因为如果不这样做,服务器将进入无限循环。


问题答案:

您可以检查请求对象上的几个属性(可能在此处记录),请参见此处记录request.pathrequest.endpoint不过,我可以建议一下,这样一来,如果您决定将视图路由到另一个或多个URL,就会被覆盖

    @app.before_request
    def before_request():
        if 'logged_in' not in session and request.endpoint != 'login':
            return redirect(url_for('login'))


 类似资料:
  • 问题内容: 我有一个前缀要添加到每条路线。现在,我在每个定义处都向路线添加了一个常量。有没有一种方法可以自动执行此操作? 问题答案: 答案取决于你如何为该应用程序提供服务。 安装在另一个WSGI容器中 假设你将在WSGI容器(mod_wsgi,uwsgi,gunicorn等)中运行此应用程序;你实际上需要将该应用程序作为该WSGI容器的子部分挂载在该前缀处(任何讲WSGI的东西都可以使用),并将A

  • 问题内容: 我有一个前缀要添加到每条路线。现在,我在每个定义处都向路线添加了一个常量。有没有一种方法可以自动执行此操作? 问题答案: 答案取决于你如何为该应用程序提供服务。 子安装在另一个容器中 假设你将在容器(等)中运行此应用程序;你实际上需要将该应用程序作为该容器的子部分挂载在该前缀处(任何讲WSGI的东西都可以使用),并将值设置为你的前缀: 设置配置值只是将的会话限制为该URL前缀。和出色的

  • 在下面的before_request()函数中,如果用户尚未登录,我想将其重定向到登录。是否有一个特殊的变量可以提供当前URL,该URL将像下面的示例那样工作? 我需要检查当前URL是否为,因为如果我不这样做,服务器将进入无限循环。

  • 我在操作栏(实际上是工具栏)中有一个菜单项,单击该菜单项时,会显示一个可供选择的项目列表,类似于单选按钮: 我需要在这个项目列表下面放一个项目,在它和列表之间有一个分隔符。与材料设计指南所示类似(摘自此处): 编辑:下面是我想做的事情的草图: 我找不到办法。 我找到的唯一可能的解决方案是: > 更改活动主题(此处),但这也会影响活动的其他菜单项 方法,当菜单项出现在操作栏上时,在它们之间放置分隔符

  • 我正在尝试调用post请求将文件上载到Archer。请在下面找到我的代码: 我收到以下错误:b'{“消息”:“请求包含实体正文,但没有内容类型标头。此资源不支持推断的媒体类型“应用程序/八位字节流”,“ExceptionMessage”:“没有MediaTypeFormatter可用于从媒体类型为“application/octet stream\”的内容中读取类型为“AttachmentWrap

  • 1、在添加线路前,请选择要添加的图层为当前图层。 2、地图窗口,点击进入绘制状态:地图中心 出现“+”标明节点位置,挪动地图,移动“+”到目标点位,点绘制工具栏中的“添加”完成一个节点 (确定线路形状的点)的绘制,继续上面的步骤,添加下一个节点,直到绘制完成。绘制结束前点击“撤消”可擦除已绘制线路中的最后一段,“撤消”操作可连续操作多次。 3、点“保存”结束并完成绘制,填写线路的基本信息后,保存,