c ajax 图表,Pyechart Django:前端和后端分离(Ajax),多图表组合显示,pyechartsdjango,前后,ajax,合并,展示...

本文介绍了在Django项目中使用PyEcharts进行前后端分离,实现多图表合并展示时遇到的问题及解决方案。关键在于`dump_options_with_quotes()`方法,它使得Grid对象能够转换为JSON。此外,还讨论了Ajax回调的前端设置,强调了标签位置对请求生成的重要性。
摘要由CSDN通过智能技术生成

pyecharts django 前后端分离(ajax),多图表合并展示

先看pyecharts 官方中文网站

pyecharts 官方中文网站

了解到官方是有相关关于django支持的代码示例的。

完全复制代码是可以正常运行并实现 ajax回调,实现前后端分离。

问题点在于多图表的构建、前端的js代码移植到自己项目的前端框架。

自己的项目前后端分离实现时的坑:(股票k线柱状线多图后端到前端)

多图表合并之后,得到了一个 Grid 对象,却无法将Grid对象转成json,原因为Grid对象无法转json。

官方文档中也有提示转存json支持不友好情况。(这个可以直接无视,目前没有发现问题)

ec5a6fab8b0a77339b57f1ba73360ac3.png

在官方文档观察到单一图表代码中,直接 return c,将c再转成json。

def bar_base() -> Bar:

c = (

Bar()

.add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])

.add_yaxis("商家A", [randrange(0, 100) for _ in range(6)])

.add_yaxis("商家B", [randrange(0, 100) for _ in range(6)])

.set_global_opts(title_opts=opts.TitleOpts(title="Bar-基本示例", subtitle="我是副标题"))

.dump_options_with_quotes()

)

return c

处理分析了好几天注意官方代码比自己多了一句代码.dump_options_with_quotes()。猜测这个是问题的关键,将他加到自己代码的对象中

grid_chart = (

Grid()

.add_js_funcs("var barData = {}".format(data["datas"]))

.add(overlap_kline_line, grid_opts=opts.GridOpts(pos_left="3%", pos_right="1%", height="60%"), )

.add(bar_1, grid_opts=opts.GridOpts(pos_left="3%", pos_right="1%", pos_top="71%", height="10%"), )

.add(overlap_bar_line,

grid_opts=opts.GridOpts(pos_left="3%", pos_right="1%", pos_top="82%", height="14%"), )

.dump_options_with_quotes()

)

再尝试转化json成功。

ajax 前端回调后端地址中坑。

官方示例直接跑是没问题的,将代码移植到框架中却异常,请求时没生成回调请求。

检查问题出现在标签前置与后置的问题。由于本人使用的前端框架中后置的标签,正确的使用方法为代码前置。

fecd2e31e6363d5664dd3c66cb4dd846.png

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值