关于在iframe上显示Superset图表的那些事

2,832 阅读2分钟

这个问题出现后也是到百度一顿“虚驱”,但百度找来的答案一般步骤就三条


1.修改config.py配置文件

PUBLIC_ROLE_LIKE_GAMMA改为True

去掉 X-Frame-Options限制

2.在superset-角色列表中修改public角色权限为

can explore on Superset

can explore json on Superset

all database access on all_database_access

3.在superset Charts中复制对应iframe代码


我做了这些操作之后并没有效果,如果成功了也没就没有这篇文章了

下面来讲一下自己的操作:

首先我先找到superset的config.py文件


我是在Xshell6(终端模拟器)直接搜索superset文件位置找到的具体文件

然后在winSCP(SFTP)中打开具体位置,然后找到config.py(有可能会是superset_config.py都一样的,只是说superset_config是自己配置的用来覆盖config)

修改对应的PUBLIC_ROLE_LIKE_GAMMA和HTTP_HEADERS

修改完保存退出

然后来到我们的superset中(用admin登录)


选择角色列表


编辑public角色分别添加

can explore on Superset

can explore json on Superset

all database access on all_database_access

到权限中


然后回到Xshell6中,先用 ps -ef 命令查看superset是否在运行中


将superset用 kill -9 <number>(输入列表中对应的root下一条数字,比如上图中的101893,102742,102744)

然后输入

superset init  

命令,个人感觉这一步最重要

等待superset初始化

初始化完成后输入

superset runserver 进行superset的启动

启动完成后打开我们的superset页面,继续进入角色列表,找到public

这时候会发现public的权限突然变多了,但是我们依旧是编辑public的权限

can explore on Superset

can explore json on Superset

all database access on all_database_access

逐个键入这三个权限,如果没有则添加上去


最后的操作便是将Charts中的生成的iframe复制到自己的代码中


唉,耽误了我整整一下午的时间。