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

  • Post author:
  • Post category:其他


由于要将主成分分析的结果做成图表并在网页上进行可视化展示,所以考虑到了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不匹配

在这里插入图片描述

这个也较为奇怪,目前我也不知道原因是啥,若有了解的大佬可以探讨探讨哈哈哈哈



版权声明:本文为CSDNyayayayaya原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。