使用pycharts结合django框架在html页面中嵌入图表的相关问题

由于要将主成分分析的结果做成图表并在网页上进行可视化展示,所以考虑到了python和echarts的结合:pyecharts
在views.py中完成图表生成的函数编写

def show_index(self):
    bar = (
        Bar()
        .add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
        .add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
        .add_yaxis("商家B", [15, 25, 16, 55, 48, 8])
        .set_global_opts(title_opts=opts.TitleOpts(title="Bar-基本示例", subtitle="我是副标题"))
    )
    bar.render("F:\\Project-Python\\python-test\\demo\\templates\\demo\\show_index.html")
    return HttpResponse(bar.render_embed())

生成图表如下:
在这里插入图片描述
而如何才能在html页面内嵌入这个图表呢?

<iframe> 标签规定一个内联框架。
一个内联框架被用来在当前 HTML 文档中嵌入另一个文档
这个标签里面有个src属性,规定在 iframe 中显示的文档的 URL。

我们编写了一个html代码:在这个div标签下,我先把<iframe>标签注释掉
在这里插入图片描述效果如下:暂时没有图表
在这里插入图片描述
当取消注释,图表的可视化就成功了,并且嵌入了网页:
在这里插入图片描述
重点来了!!!!
一个下午都在关于嵌入页面的url的名字的bug中度过,所以着重记录。

学习django的都知道,在urls.py文件中,要编写path函数来进行匹配,若匹配不中,则会返回404页面提示没有这个URL资源。

我的URL模式如下:

urlpatterns = [
    path('', views.index, name='index'),
    path('nav_data/', views.bi_data, name='bi_data'),
    path('nav_data/show_index/', views.show_index, name='show_index')
]

同时也要关注到<iframe>标签内的 src 目前是show_index:

<iframe frameborder=0 src="show_index" width="100%" height="450"></iframe>

注意到:path(‘nav_data/show_index/’, views.show_index, name=‘show_index’)
其中nav_data为想要嵌入页面,而path函数的第一个参数,需要将链接的上级目录配置为想要嵌入的网页的url

而如果要得到嵌入图表的html页面,则要输入这样的URL才能正确显示:
在这里插入图片描述
目前不知这个原因为何,也在urlpatterns中修改了一下午才修改出来。

还有一个比较有意思的事情:
如果<iframe>标签下将src=“show_index”标签修改,与path函数下的“nav_data/show_index”不一致的时候,那么网页也会出现访问错误
在这里插入图片描述在这里插入图片描述
出现404访问错误:URL不匹配
在这里插入图片描述
这个也较为奇怪,目前我也不知道原因是啥,若有了解的大佬可以探讨探讨哈哈哈哈

  • 3
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值