问题标签 [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 投票
2 回答
2141 浏览

python - 将 LDAP 与 Flask-AppBuilder RBAC 一起使用时,“AnonymousUserMixin”对象在 Airflow Webserver 中没有属性“角色”错误

我正在尝试将 Airflow Webserver 身份验证与 Airflow 1.10.0 中可用的 Flask-AppBuilder RBAC 集成,但无论我尝试什么配置设置,我都会得到一个AttributeError: 'AnonymousUserMixin' object has no attribute 'roles'.

以前,我已经让 Airflow LDAP 身份验证后端与我的组织的 LDAP Microsoft AD 服务器一起使用,但我无法获得正确的配置设置以使其能够与 FAB RBAC 一起使用。Airflow 和 FAB 文档对 LDAP 或对其进行故障排除几乎没有什么可说的。

${AIRFLOW_HOME}/webserver_config.py我的文件中

{AIRFLOW_HOME}/airflow.cfg我有

我已经升级了后端 Postgres DB,以便它拥有ab_表格。

当我通过 Docker Swarm 部署所有内容并转到相应的 Web 服务器 URL 时,我只会收到上面列出的错误以及堆栈跟踪。它从来没有给我登录选项(我尝试清除 cookie),所以我不明白如何让它让“匿名”用户甚至尝试对 LDAP AD 进行身份验证。

是问题

  • webserver_config.pyLDAP 设置?
  • 这些设置周围的引号?
  • 设置airflow.cfg
  • 关于我的组织的 LDAP 服务器?
  • 别的东西?

如果我遗漏了任何信息,请告诉我。谢谢!

0 投票
0 回答
54 浏览

flask-appbuilder - 自定义文件上传

我正在使用 flask-appbuilder 上传 CSV 文件,然后根据这些文件运行一些操作。

我需要一个具有一些特定功能的 FileColumn: * 检查上传的 CSV 文件的格式 * 在将文件的引用存储在 DB 列中之前对文件进行排序

我认为这将需要通过覆盖一些方法来定义一个新的自定义 FileColumn,但我真的找不到要覆盖的类。

有没有人做过这样的事情?有人可以指出我需要覆盖的步骤和课程吗?

提前致谢

0 投票
1 回答
277 浏览

flask-appbuilder - Flask appbuilder 大型应用程序

我已经使用 Flask-AppBuilder 构建了一个“大型”应用程序,并且有 2 个问题我没有看到答案。

  1. 有没有办法将大型应用程序“拆分”为多个组件(类似于蓝图所做的)。
  2. 我的业务逻辑大部分都在 View 中结束了,但是......其中一些感觉不合适。我在模型中添加的东西很少,再次感觉不对。这是倾向于创建长时间运行的进程的逻辑,所以我一直在测试 Celery。

其中任何一个的任何例子都会很可爱。

0 投票
2 回答
799 浏览

flask-appbuilder - Flask-Appbuilder - View 中需要用户安全角色

如果当前用户角色 = admin,则显示表中的所有记录。如果没有,则按创建的用户限制行数。

如果我在视图类中定义一个函数,我可以获得用户名,但在构造列表之前需要它。请参阅下面的源代码。

这是我得到的错误:

无法导入应用程序错误:在应用程序上下文之外工作。

这通常意味着您尝试使用需要以某种方式与当前应用程序对象交互的功能。要解决此问题,请使用 app.app_context() 设置应用程序上下文。有关更多信息,请参阅文档。

0 投票
1 回答
525 浏览

python - 如何将自定义字段添加到 ModelView (flask-appbuild)

我是 webdevoloping 的新手,并尝试使用flask-appbuilder。

我已经定义了一个模型和一个模型视图,表格很好地显示在 webapp 上。

如果我点击一个项目的详细视图,我想添加一些自定义字段(下拉列表和一个按钮),但我真的不知道如何实现这一点。

我浏览了 flask-appbuilder 指南,但没有发现任何有用的东西。

如果定义了init方法,我也会让 webapp 无法工作。是否有可能使用构造函数或者我需要实现自定义方法?

我想添加一个下拉列表和一个按钮。如果我点击按钮,一个函数会提供一些数据,它们应该显示在文本字段中。

当前:https ://imgur.com/a/TMFa0GF 目标:https ://imgur.com/21lJVBT

我很感激任何帮助!谢谢 :)

0 投票
1 回答
46 浏览

flask - 如何用自定义视图覆盖 OAuthView?

如何将提供者登录设置为默认登录页面,而不是导航到需要选择提供者的 OAuth 页面?

0 投票
0 回答
307 浏览

session - 检查 SESSION 是否仍处于活动状态后,如何重定向我的 FLASK 应用程序?

我已经声明了自己的安全管理器,并且在其中我试图使用before_request来检查,然后如果应用程序的会话已过期,则重定向到登录页面。但是,每次会话过期并且之前的请求运行并尝试重定向应用程序时,我都会收到 ERR_TOO_MANY_REDIRECTS 错误。我理解为什么有太多的重定向(因为每个请求的前请求重定向),所以我尝试了诸如after_this_request 之类的替代方法,但这会返回相同的结果。我确信我的问题在于使用之前的请求,但是到目前为止我还没有遇到替代解决方案。

以下是我尝试过的众多代码组合之一:

0 投票
1 回答
1474 浏览

airflow - Airflow v1.10.3 是否默认附带 Flask App builder (FAB) 并且需要在 webserver_config.py 中进行 Google Oauth 配置?

我有一个与 Airflow v1.10.3 相关的问题。我们最近将气流从 v1.9 升级到 v1.10.3。通过新的升级,我们遇到了这样一种情况,即任何来自 UI 的 Celery 执行命令都没有在消息代理和 celery 工作者中排队/执行。

基于芹菜常见问题解答:https ://docs.celeryproject.org/en/latest/faq.html#why-is-task-delay-apply-the-worker-just-hanging ,它指向身份验证问题,用户没有访问。

我们在 v1.9 版本中使用以下配置进行了 Web 身份验证(Google Oauth):

上述配置值是否仍然有效,或者我们是否需要设置 RBAC=True 并在 webserver_config.py 中提供 Google Oauth 凭据?

Webserver_config.py

很感谢任何形式的帮助。谢谢。

0 投票
5 回答
7311 浏览

python-3.x - 如何禁用 Airflow 登录以进行身份​​验证和授权?

我有一个 apache 气流分支,我想在代理服务器后面运行。所有身份验证都将在气流外部处理,因此我不希望客户再次使用另一组凭据登录。有没有办法从气流中完全删除/禁用身份验证。

基本上,我想摆脱这个初始登录屏幕,并允许任何到达气流的人都拥有用户(而不是管理员)访问权限。[最坏情况下的管理员访问也可以。]

在此处输入图像描述

0 投票
0 回答
732 浏览

python - 从 g.user 设置的 Flask-appbuilder 模型列默认值不起作用

在我的应用程序中,我希望所有表都按公司 ID 保存和读取数据。所有表都有 FK 到公司 ID。通过提供公司、用户和密码,我已经将登录和注册视图覆盖到登录。用户登录后,公司 ID 显示在“g.user.cia_id_fk”中。cia_id_fk 已添加到“ab_user” 在此处输入图像描述 我的方法是在模型中将“默认”cia_id_fk 设置为“g.user.cia_id_fk”。我正在关注“extendsecurity2”示例(https://github.com/dpgaspar/Flask-AppBuilder/blob/master/examples/extendsecurity2/app/models.py),其中“Contact”模型 Created_by 列默认为“g.user 。ID”

模型.py

尝试在“状态”中添加记录时出现此错误:请注意,表单中未显示字段“cia_id_fk”。

这表明“默认”不起作用。我试过可能的变化,但不是运气。请注意,上面提到的示例工作正常,但设计不同,我想要更简单的东西。

欢迎任何其他方法(如预先设置)。

提前感谢您的帮助