Django2学习笔记--添加pyecharts可视化图

简介

服务器上部署pyecharts可视化图,官方文档记录的很详细,这里记录简单写一下

步骤

pyecharts前后端分离部署在django上,官方文档:https://pyecharts.org/#/zh-cn/web_django?id=django-%e5%89%8d%e5%90%8e%e7%ab%af%e5%88%86%e7%a6%bb
这里根据官方文档简化一做下
Step 1:新建一个 Django 项目

$ django-admin startproject pyecharts_django_demo

Step 2:在 pyecharts_django_demo/views.py 中编写 Django 和 pyecharts 代码渲染图表
这里我就不创建应用了,直接在项目下新建views.py演示

sunhailindeMacBook-Pro:pyecharts_django_demo/pyecharts_django_demo sunhailin$ ls
__pycache__   __init__.py   settings.py  urls.py  views.py  wsgi.py

bar_base()内可以把处理好的列表数据传入,做自己需要的可视化图

import json
from random import randrange

from django.shortcuts import render
from django.http import HttpResponse
from rest_framework.views import APIView

from pyecharts.charts import Bar
from pyecharts import options as opts


# Create your views here.
def response_as_json(data):
    json_str = json.dumps(data)
    response = HttpResponse(
        json_str,
        content_type="application/json",
    )
    response["Access-Control-Allow-Origin"] = "*"
    return response


def json_response(data, code=200):
    data = {
        "code": code,
        "msg": "success",
        "data": data,
    }
    return response_as_json(data)


def json_error(error_string="error", code=500, **kwargs):
    data = {
        "code": code,
        "msg": error_string,
        "data": {}
    }
    data.update(kwargs)
    return response_as_json(data)


JsonResponse = json_response
JsonError = json_error


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


class ChartView(APIView):
    def get(self, request, *args, **kwargs):
        return JsonResponse(json.loads(bar_base()))

# 这是某个需要可视化图的页面
def index(request):
    context = {}
    context['abc'] = '这是某个需要可视化图的页面'
    return render(request, 'index.html', context)

在这里插入图片描述

Step 3:在 pyecharts_django_demo/urls.py 中配置路由
这里实际是生成一个json文件链接,到时候前端直接调用里面的数据,用echarts静态文件渲染就可以出图了
运行之后,可以去访问看一下,http://127.0.0.1:8000/bar

from django.contrib import admin
from django.urls import path
from.import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('bar/', views.ChartView.as_view(), name='demo'),
    path('', views.index, name='index'),
]

Step 4:编写画图 HTML 代码
先在根目录文件夹下新建 templates 文件夹,新建一个 index.html

sunhailindeMacBook-Pro:pyecharts_django_demo sunhailin$ ls
__pycache__   db.sqlite3   manage.py  pyecharts_django_demo  templates

index.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Awesome-pyecharts</title>
    <script src="https://cdn.bootcss.com/jquery/3.0.0/jquery.min.js"></script>
    <script type="text/javascript" src="https://assets.pyecharts.org/assets/echarts.min.js"></script>

</head>
<body>
	{{abc}}
    <div id="bar" style="width:500px; height:300px;">
	    <script>
	        var chart = echarts.init(document.getElementById('bar'), 'white', {renderer: 'canvas'});
	
	        $(
	            function () {
	                fetchData(chart);
	            }
	        );
	
	        function fetchData() {
	            $.ajax({
	                type: "GET",
	                url: "http://127.0.0.1:8000/bar",
	                dataType: 'json',
	                success: function (result) {
	                    chart.setOption(result.data);
	                }
	            });
	        }
	    </script>
    </div>
</body>
</html>

在这里插入图片描述
Step 5:更改 pyecharts_django_demo/settings.py 中配置
只展示了有变化的部分

"""

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'rest_framework',
]

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [
            os.path.join(BASE_DIR, 'templates'),
        ],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

Step 6:运行项目

$ python manage.py runserver

使用浏览器打开 http://127.0.0.1:8000/ 即可访问服务
在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: pyecharts是一个基于Python的可库,可以用于生成各种类型的表,包括折线、柱状、散点、地等。Django是一个基于Python的Web框架,可以用于开发各种类型的Web应用程序。将pyechartsDjango结合使用,可以实现可大屏的开发,用于展示各种数据分析结果、业务指标等。通过Django的模板引擎,可以将pyecharts生成的表嵌入到Web页面中,实现数据可展示。 ### 回答2: Pyecharts是Python历史上最好的可框架之一,它可以通过Django进行集成。Pyecharts具有丰富的表类型和自定义选项,可以简我们的数据分析和可工作。在使用Django的情况下,可以将pyecharts用作大屏数据可的一种高效方式。 在Django中,pyecharts可以通过使用基于类的和模板来呈现结果。可以从数据库中获取数据,并通过pyecharts将该数据转为各种形式的表,比如柱状、饼状、折线等等。 集成pyecharts需要使用pyecharts包中的类和函数,也需要导入pyecharts中的不同表类型以及相关的工具类。最好的方式是编写自定义模板标签或编写额外的模板或文件。这样可以轻松地将可部分集成到Django的其他部分中。 对于大型可项目,Djangopyecharts都可以提供良好的可扩展性和性能。但是,需要确保在实现大量可时,不会占用大量内存或导致应用程序的性能下降。 最后,pyecharts的可效果和细节非常出色,并且易于修改和自定义,可以满足各种需求。而Django可以提供完善的框架和优秀的安全机制。将它们结合使用,可以建立出高品质的可大屏应用。 ### 回答3: Pyecharts是一款基于Python语言的数据可库,能够使用Python语言进行数据分析、展示和可。而django则是一款基于Python的Web框架,能够快速构建WEB应用和网站。结合Pyechartsdjango,可以搭建一个功能完善、界面美观的数据可大屏。 在搭建过程中,可以使用Pyecharts的多种可组件来呈现实时数据展示、趋势分析、数据对比等数据可展示。同时,django的快速构建特性也能够轻松实现前后端分离开发、快速开发的需求。可以使用django的ORM或者自定义的API接口从数据库中获取数据,然后调用Pyecharts进行数据处理和表渲染,最终实现数据可的展示效果。 从设计角度来看,数据可大屏需要注意以下几个方面:设计风格、数据呈现、数据交互等。可以根据数据来源和用户需求,合理设计可大屏的数据展示效果,从而使用户更好的接受数据信息和分析结果。例如,可以选择合适的表类型、颜色搭配和数据标签,使数据信息更加清晰明了。同时,可大屏也需要具备数据交互的功能,让用户能够更加深入的了解数据细节和数据背后的信息。 总之,Pyechartsdjango的结合,能够为数据可大屏的构建带来更加便捷和流畅的开发体验,使得数据可大屏的设计和实现更加轻松自然。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值