为Autoplotter创建Docker服务并嵌入Django模板iframe的咨询
这个需求完全可以实现,Autoplotter是基于Web的可视化工具,打包为Docker容器对外提供HTTP服务后,即可通过iframe嵌入到Django模板中展示。
操作指引
1. 准备Docker打包文件
新建工作目录,在目录下创建3个文件:
1.1 依赖声明文件requirements.txt
autoplotter==0.1.3 gunicorn==21.2.0 flask-cors==4.0.0
1.2 服务启动脚本run.py
from autoplotter import run_app from flask_cors import CORS import os # 初始化Autoplotter服务 app = run_app( host="0.0.0.0", port=int(os.getenv("PORT", 8050)), debug=False, return_app=True ) # 配置跨域许可,生产环境请将origins替换为你的Django服务实际域名,不要使用通配符 CORS(app.server, resources={r"/*": {"origins": "http://localhost:8000"}}) if __name__ == "__main__": app.run_server(host="0.0.0.0", port=int(os.getenv("PORT", 8050)))
1.3 Docker镜像构建文件Dockerfile
FROM python:3.9-slim WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY run.py . EXPOSE 8050 CMD ["python", "run.py"]
2. 构建并启动Docker服务
- 构建镜像:
docker build -t autoplotter-service . - 启动容器:
docker run -d -p 8050:8050 --restart=always --name autoplotter autoplotter-service - 可用性验证:本地访问
http://localhost:8050,可以正常打开Autoplotter操作界面即启动成功。
3. 嵌入Django模板
在需要展示Autoplotter的Django模板文件中,插入iframe代码:
<iframe src="http://localhost:8050" width="100%" height="800px" frameborder="0" allow="fullscreen" > </iframe>
将src参数替换为你实际部署的Autoplotter服务地址即可。
4. 生产环境配置建议
- 禁止开启Debug模式,避免信息泄露
- 跨域配置仅放行你的Django服务域名,不要使用
*通配符 - 可通过Nginx反向代理Autoplotter服务,配置HTTPS,避免HTTP/HTTPS混合内容被浏览器拦截
- 若需要多用户使用,建议为不同用户启动独立的Autoplotter实例,做好数据隔离。
内容的提问来源于stack exchange,提问作者Filbadeha
相关产品推荐
相关产品推荐

