如何在网页调用superset中创建的chart
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
要在网页上调用Superset中创建的chart,你需要使用Superset的Embedding功能。以下是具体步骤:
首先,确保你的Superset已经开启了Embedding功能。在Superset的配置文件superset_config.py
中,找到EMBEDDING_ENABLED
选项并将其设置为True
。如果没有这个文件,你可以在superset/conf.py
中找到相应的配置。
在Superset的Web UI中,打开你想要嵌入的chart,点击"Embed"按钮。这将生成一个包含嵌入代码的对话框。
复制生成的嵌入代码,它看起来像这样:
<iframe src="https://<your-superset-domain>/embed/dashboard/<your-dashboard-id>:<your-chart-id>" width="100%" height="700px" frameBorder="0"></iframe>
将这段代码粘贴到你的网页中,替换<your-superset-domain>
、<your-dashboard-id>
和<your-chart-id>
为实际的值。
保存并刷新你的网页,你应该能看到嵌入的chart已经显示在网页上。
注意:确保你的网页和Superset之间的跨域访问是允许的,否则你可能会遇到安全限制问题。如果需要,你可以在Superset的配置文件中设置CORS_WHITELIST
来允许特定的域名进行跨域访问。
要在网页中调用 Apache Superset 中创建的图表,你可以采用 iframe 嵌入的方式。以下是基本步骤:
获取图表 URL:
配置 Superset 以允许 iframe 跨域访问:
config.py
配置文件中,你需要做一些设置来允许 iframe 跨站访问。例如,设置 PUBLIC_ROLE_LIKE_GAMMA=True
以启用公共角色的更多权限,以及将特定视图添加到 CSRF 跨站请求伪造豁免列表,如 WTF_CSRF_EXEMPT_LIST
。嵌入到 HTML 页面:
<iframe>
标签的形式。示例 HTML 代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>嵌入 Superset 图表</title>
</head>
<body>
<div style="width: 100%; height: 600px;">
<!-- 替换此处的 'YOUR_SUPERTSET_CHART_URL' 为实际的图表嵌入 URL -->
<iframe src="YOUR_SUPERTSET_CHART_URL" width="100%" height="100%" frameborder="0"></iframe>
</div>
</body>
</html>
确保替换 'YOUR_SUPERTSET_CHART_URL'
为你从 Superset 获取的实际图表嵌入链接。
注意,由于安全性和隐私原因,Apache Superset 默认可能不允许 iframe 跨域嵌入。在生产环境中,必须仔细评估这样的设置是否符合组织的安全策略,并采取相应的措施来保护敏感数据。同时,确保图表的访问权限与网页访问者的身份认证和授权相匹配。
需要在Superset的配置文件(通常是superset/config.py)中启用并配置允许iframe嵌入。这可能包括设置ENABLE_IFRAME为True以及相关的CORS策略,确保跨域访问安全。
要在网页中展示Apache Superset中的图表,通常不是直接将图表嵌入到网页中,而是通过以下方式间接实现:
API集成:Superset提供了API接口可以获取图表的数据和元数据,你可以通过这些API接口在你的网页应用中重新渲染图表。例如,使用JavaScript库(如D3.js、ECharts或任何你喜欢的可视化库)根据从Superset API获取的数据来动态构建图表。
iframe嵌入:Superset允许你生成一个公开的、可嵌入的URL,这个URL会显示特定仪表板或图表。将其嵌入到网页的<iframe>
标签内即可。
具体步骤: