问题标签 [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 回答
973 浏览

python - 如何使用 sqlalchemy 添加 citext 列?

我在 postgresql 表中有一个具有 citext 数据类型的列。我想将该列添加到烧瓶 appbuilder 中的模型中。

下载sqlalchemy-citext库并添加如下。在烧瓶应用程序构建器中创建了以下模型。

当我执行相关视图时,它会给出以下错误。

有没有办法在 sqlalchemy 中添加 citext 列?

0 投票
2 回答
231 浏览

sqlalchemy - 你如何用超过 2 张桌子做多对多?

我有一个日志表,其中包含有关员工 ex 的各种信息:

员工和技能表如下所示:

我目前正在使用 Flask-Appbuilder 并且我有一个技能视图,可以显示当前所选技能的所有日志。

在 SkillLogView 中,我还想显示具有此技能的员工姓名列表。

我如何从与当前技能相关的日志中获取员工?

我不知道该怎么做,但我认为这可能是多对多的情况。问题是有 3 个表,而不是 2 个。

有没有办法用超过 2 张桌子做多对多?

还是有另一种方法来完成我想做的事情?

任何帮助表示赞赏。

0 投票
1 回答
400 浏览

python - create-admin 错误:您的包中没有 appbuilder var,您可以使用 appbuilder 参数进行配置

我遇到了命令问题:fabmanager create-admin 这是我执行的一系列步骤:

我按照我的 Windows 10 机器上的所有安装步骤安装了 flask_appbuilder。然后我使用命令下载了骨架应用程序:“fabmanager create-app”。但是当我从新创建的骨架应用程序目录发出命令:“fabmanager create-admin”时,它会抛出错误:

“您的软件包中没有 appbuilder var,您可以使用 appbuilder 参数进行配置”。

我检查了 app/ init .py 文件,它确实包含 appbuilder var。这是该文件的转储:

我尝试使用管理员权限发出相同的命令,但没有成功。根据文档,如果我们尝试使用不同的名称(除了 appbuilder),我们可以使用 --appbuilder 选项来配置它,但在我的情况下,我没有做任何这样的事情。

请建议。

0 投票
1 回答
449 浏览

flask-appbuilder - 我的 Flask-AppBuilder 项目只显示相关表的 ID,而不是它的名称,为什么?

我将使用 FAB 快速定制 IoT APP Web 作为后端。

通过运行FAB教程和文档的示例项目, http: //127.0.0.1 :5000/contactmodelview/list/ ContactView列表页面,Contact Group显示为name,黑色,而不是id。

在此处输入图像描述

我克隆了设计,有1:N的关系(一个账户有很多设备,就像ContactGroup有很多联系人一样),代码如下:

模型.py

视图.py

但是,DeviceView 的列表以蓝色显示相关 ID,并且显示 No Account name。但是在 DeviceDetail 视图中,会显示帐户名称。

在此处输入图像描述

有什么区别?

0 投票
1 回答
207 浏览

flask-appbuilder - 如何在 Flask appbuilder 中定义编辑视图的显示顺序?

根据flask appbuilder的文档,模型详细视图的显示顺序可以定义如下:

它适用于详细视图。但我找不到编辑视图的定义。这是我的设备编辑页面快照。顺序似乎是随机的。

我错过了文档中的任何部分吗?

在此处输入图像描述

0 投票
1 回答
788 浏览

flask-appbuilder - 如何在 Flask-appbuilder 列表/详细模型视图中嵌入额外的列/外部 URL?

Flask-appbuilder 的 ModelView 可以显示模型的列表和详细信息。非常方便,为 CURD 操作节省了很多时间。

有时,除了 CURD 操作之外,应用程序还需要更多具有额外列的功能。例如,在 IoT 相关的 Device ModelView 中,除了 CRUD 之外,我还想链接到另一个实时仪表网页,或者调用设备服务器提供的 Web API 向设备发送命令。

在其他 Python 框架中,如 Tornado/Cyclone,我将手动设计一个模板页面(带有额外的按钮)和(嵌入额外的)javascript 代码。但是我还是不熟悉FAB的结构。

我可以将这些额外的操作作为其他公开方法的外部链接。并将这些链接添加到模型作为数据字段。但我认为这些设计相当丑陋。它的 URL 也太长而无法显示。

有更好的想法吗?应该重写哪些方法?

0 投票
1 回答
107 浏览

flask-appbuilder - 如何在 Flask-appbuilder 中更改 Google Chart API?

由于 Goolge Chart API 在中国境内不可用。我想换成百度的ECharts。

我应该定义另一个 ChartView,有没有关于 How To 的官方文档?

现在,我正在使用 Jinja2 模板在 html 文件末尾包含 echarts.js(lib)和自定义 js 代码(操作)以及视图(数据源)中的自定义方法。但我希望有官方的方式来做到这一点。

0 投票
1 回答
445 浏览

flask-appbuilder - 如何在flask-appbuilder中列出所有资源属于一个用户,而不是全部?

我已经简要浏览了 flask-appbuilder 的文档。在大多数示例中,ModelView 将列出所有资源。如果有相关视图,FAB 允许管理员(用户)根据其关系定义检查相关项目的详细信息。

但是,我不知道如何显示属于当前用户的资源。在其他框架中,很容易通过自定义 SQL 查询(where 语句)来实现。但除了一些数据库测试日期插入代码外,我没有从 FAB 示例中找到带有 sql 查询的演示项目。

例如,让我们想象一个 IoT 相关项目。业主拥有很多设备,一台设备可以供多个用户使用。所以,

  • 作为管理员,他/她应该能够看到所有设备。
  • 作为所有者,他/她应该能够看到所有设备属于。
  • 作为用户,他/她应该能够看到他/她可以使用的所有设备。

模型.py

视图.py

如果我们为三个视图定义以下 URL:

  • 管理员,/设备视图/列表
  • 所有者,/deviceview/我的
  • 用户,/deviceview/授予

但是,我不知道如何编写我的/授予的方法。通过使用 db.session.query() ?

db.session.query(Device, owner=owner)db.session.query(Access, user=user)

或者我还没有阅读的任何文件?

0 投票
1 回答
1291 浏览

flask - Flask-appbuilder RESTful API 与 Flask-RESTful API

我正在尝试在 IoT 项目中使用 Flask-appbuilder。因此,FAB 用于快速应用程序构建,我们需要为移动应用程序和 3rd 方服务供应商提供专用的 RESTful API。

在 FAB 中,作为 BaseCURDView 的子类,有一个 RESTful API 的实现。大多数 URL 被定义为

http://host/ /api/list

如果移动应用程序像浏览器一样充当用户代理,它收集用户名/密码,登录并访问 FAB 的 RESTful API,然后权限,url 没什么大不了的,一切都可以遵循 B/S 编程。AKA,所有安全模型都基于 cookie 和会话。大多数请求信息都在 flask.g.user/flask.request.* 中。

如果 webapp 必须支持更多标准样式的 RESTful API,如 miguel 的烧瓶书中所述。外部 webapp 必须将 api key/secret 嵌入到指定的 url 以交换令牌,然后在 header 或 http 参数中使用令牌来访问资源以进行 CRUD 操作。

我已经成功地将它们合并到 FAB 的 views.py 中。

是的,我可以实现标准的 RESTful API,就像我在另一个烧瓶项目中使用 http 标头和使用 sqlalchemy 的自定义查询一样。但我不确定这是否是正确的方法。由于大部分数据都是直接从 sqlalchemy 原始查询请求的,因此它们是完全不同的编程体验。

在继续前进之前,欢迎提出任何建议。

0 投票
1 回答
135 浏览

python - 使用 Flask-Appbuilder 轮换 consumer_secret

有一个带有自定义的 Flask-Appbuilder 应用程序,SecurityManager可以查找从浏览器获取的用户令牌。我们在应用程序启动时获取客户端凭据。直到凭证轮换为止,它都可以正常工作。
是否有一个扩展点,我可以在其中实现请求customer_idcustomer_secret来自外部资源?

SecurityManager执行:

config.py