问题标签 [flask-appbuilder]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
337 浏览

python - Flask App Builder - 后处理模型视图

Flask App builder有没有办法在表单发布后添加后期处理?比如添加表单提交后,我想修改一些已经发送的数据。

我终生无法在文档中找到任何内容,我觉得这应该是基本功能。

谢谢

0 投票
2 回答
2451 浏览

python - REMOTE_USER 身份验证类型如何在 apache 超集中工作?

我一直在尝试使用我的 Login Rest API 而不是其他类型进行身份验证。如何做到这一点?REMOTE_USER 身份验证是正确的方法吗?如果是这样,我可以获得有关此的示例代码或文档吗?

阅读此处的文档,但由于我是 flask-appbuilder 和 python 的新手,所以不太了解。

0 投票
0 回答
665 浏览

flask - 如何在 Flask-appbuilder 中使用暴露的自定义处理程序重用模板?

这是关于 Flask-appbuilder 的一个非常具体的问题。在我的开发过程中,我发现 FAB 的 ModelView 适合管理员角色,但需要更多的用户逻辑处理程序/视图来进行复杂的设计。

设备用户之间存在多对多的关系,因为每个设备可以在多个用户之间共享,每个用户可以拥有多个设备。于是就有了一张叫做accesses的二级表,描述了设备用户之间的访问控制。在此表中,如果用户拥有该设备,我将添加“isHost”。因此,我们有两个角色:主机和(普通)用户。但是,这些角色不是定义为其他应用程序的两个角色,因为一个人可以同时是主机或用户。在一个非常简单的应用程序中,强制用户切换两个角色不是很方便。这让事情变得更糟。

无论如何,我需要使用传统的 Flask/Jinja2 模板设计一些自定义处理程序。例如:

上面的降价页面 URL 很简单,因为它是一个单独的 UI。但是如果我去 DeviceView/AccountView/AccessView 进行列表/显示/添加/编辑操作。我意识到我需要一个独特风格的 UI。

那么,现在如何通过自定义 sqlalchemy 查询重用 FAB 的现有模板/小部件?这是我的 DeviceView 代码。

除了带有 render_template() 的 sqlalchemy 代码,我猜 base_filters 还可以帮助定义自定义查询,但是,我不知道如何获取查询结果并渲染它们。

如果可能,请给我一些参考代码或示例。实际上,我在 FAB 的 github 资源中有 grep 关键字“db.session/render_template/expoaw”。但没有运气。

0 投票
0 回答
721 浏览

flask-login - 向 Superset/Flask 添加额外的身份验证检查

我正在尝试使用 Keycloak 作为我的超集环境的单点登录身份验证提供程序。Superset 使用 flask-appbuilder.security 和 flask-login。我之前在这里发布了一个关于它的问题:

将 OpenID/Keycloak 与 Superset 一起使用

从那以后我遇到的一个问题是,当用户登录超集并从另一个应用程序注销时,他们仍然使用超集登录。

我认为我最好的方法应该是检查用户是否仍然通过 sso 进行身份验证。我正在使用的库(flask-oidc)提供了 user_loggedin 检查,但我不确定应该从哪里调用它。

我可以在flask-appbuilder.security 或flask-login 的哪个位置挂钩这个额外的身份验证检查?

0 投票
1 回答
293 浏览

python - 使用 UUID 的 Flask-Appbuilder 模型关系

我正在开发一个应用程序,它将定义几个模型,这些模型将使用 scqlalchemy_utils 包中的 UUIDType,定义如下视图:

我的模型是这样的:

我在启动应用程序时看到所有定义为 UUID 的列的警告:

谁能向我展示一个允许使用 UUID 类型(或其他自定义)列进行过滤的工作示例或片段?使用这种类型的所有其他东西似乎都可以正常工作。

谢谢!

0 投票
0 回答
708 浏览

python - 在 Flask-Appbuilder REST 端点上使用 OAUTH Bearer Token

是否可以以某种方式配置 Flask-Appbuilder 以便其REST API接受其中包含 Bearer {my_token} 的授权标头?

0 投票
2 回答
644 浏览

python - 在烧瓶 appbuilder 中获取当前语言

我有一个用 Flask Appbuilder 编写的简单应用程序,view.py如下所示。它是http://flask-appbuilder.readthedocs.io/en/latest/views.htmlmethod1中示例的一部分,在我替换return 'Hello'为我希望找到的函数的位置略有变化。

我们可以更改应用程序中的语言 (en,fr,ru,...) 并进行翻译。是否有获取当前语言的功能?(Current_Language())。

0 投票
1 回答
199 浏览

python - python - FAB 自定义插件创建和安装

我正在尝试构建自己的自定义插件,以便以通用方式处理我的应用程序外部的 OAuth 登录。

我已阅读有关实施 OAuth的文档,以及有关创建附加组件的文档。如果我将代码破解到应用程序中(没有附加组件),我的代码就可以工作,但我不想要这个。我希望它可以简单地包含代码并在我的 config.py 中设置一个变量来使用它。这就是我尝试附加组件的原因。

我将我在应用程序中工作的代码移到了插件中。我使用 fabmanager 为我生成骨架,然后修复了我的代码所在的 model.py 文件和配置文件。然后,根据文档,我在我的主应用程序的 config.py 文件中添加了以下行,以告诉它使用我的附加组件。

但是,这不起作用。我收到“ModuleNotFoundError”。

我已将附加代码都放在与主项目相同的级别:

在主项目内部:

这些都不起作用。

完整的文件夹结构

我已经将附加文件夹放置在这一层和上一层。附加文件夹结构:

是否有特定的方法来注册我的附加组件?或者这是一个我似乎无法弄清楚的直截了当的参考问题?

编辑 1

将“ADDON_MANAGERS = ['fab_addon_first.manager.FirstAddOnManager']”更改为现在的样子。

编辑 2

添加文件夹结构

0 投票
1 回答
1292 浏览

python - 烧瓶 appbuilder 中的 SecurityManager 装饰器,用于超级

我正在尝试在超集中添加来自 OAuth 的自定义用户信息检索,该超集中构建在 flask-appbuilder 之上。

官方文档提供以下信息:

使用 SecurityManager oauth_user_info_getter 装饰器装饰您的方法。使您的方法接受本示例中的确切参数,然后返回包含检索到的用户信息的字典。

http://flask-appbuilder.readthedocs.io/en/latest/security.html#authentication-oauth

文档中的示例也没有多大帮助,因为在评论中添加了装饰器。

我在哪里可以在 Superset 中放置自定义装饰器?我已经将自定义装饰器放在 superset_config.py 中,但我没有为我工作。

0 投票
1 回答
1287 浏览

python - 如何将 LDAP AD 组映射到 python flask AppBuilder 中的用户角色

我目前正在尝试将 LDAP 中的用户组自动映射到基于烧瓶 AppBuilder 框架的应用程序中的用户角色,但无法提出解决方案。我已经阅读了整个烧瓶 AppBuilder 文档,但没有找到与此相关的任何内容。这是我想出的基本配置。我不知道如何将不同的角色映射到不同的用户组。