/django-echarts

基于pyecharts和django的可视化网站生成器。

Primary LanguagePythonMIT LicenseMIT

django-echarts

django-echarts version Build Status PyPI - Status PyPI - Python Version PyPI - Django Version

A site generator based on pyecharts and django.

django-echarts 是一个基于pyechartsDjango 整合的可视化网站生成器。

概述

django-echarts 主要提供了以下的内容:

  • 可显示页面:主页/列表/详情/关于
  • 可支持组件:导航栏/网站底部栏/热门板块/列表/关于面板
  • 内置Bootstrap3 和 Material 两种主题及其调色
  • 基于Django Template Engine 的后端渲染
  • js/css静态文件托管,支持在线/本地切换
  • 生产力工具:代码生成器
  • 90%+ Python Typing Hints覆盖

安装

django-echarts包运行环境要求如下::

django-echarts版本系列 pyecharts django python 备注
0.5.x 1.9+ 2.0+ 3.7+ 开发维护中

注意:django-echarts v0.3.x 不再维护。

可以使用 pip 命令安装。

pip install django-echarts

3分钟上手

1 创建Django项目。

django-admin startproject MyDemo

项目目录结构如下:

MyDemo
  |-- MyDemo
        |-- __init__.py
        |-- asgi.py
        |-- settings.py
        |-- urls.py
        |-- site_views.py
        |-- wsgi.py
  |-- manage.py

2 添加 django_echarts包到项目配置模块的 INSTALL_APPS列表。

INSTALL_APPS = (
    # Your apps
    'django_echarts',
    # Your apps
)

3 进入项目目录,执行startsite命令 ,生成对应的代码基本框架。

python manage.py startsite MyDemo\site_views.py

site_views.py 文件代码如下:

"""
The file is generated by django-echarts 0.5.0b1.
Now you can add site urls to the entry urlpatterns in project urls.py.
Example:
    urlpatterns = [
        # Other urlpatterns
        path('', site_obj.urls),
    ]

"""
from django_echarts.starter.widgets import Copyright
from django_echarts.starter.sites import DJESite

__all__ = ['site_obj']

site_obj = DJESite(
    site_title='图表可视化',
    copyright_=Copyright(start_year=2022, powered_by='Django-Echarts')
)


@site_obj.register_chart
def mychart():
    # Write your pyecharts here.
    # This method must return an object of pycharts.charts.Chart
    pass

4在函数mychart 中编写pycharts代码,返回对应的图表对象。

根据需要修改文字显示,添加组件等。

# ...

from pyecharts import options as opts
from pyecharts.charts import Bar, Kline, Map, Pie, WordCloud

site_obj = DJESite(
    site_title='图表可视化',
    copyright_=Copyright(start_year=2017, powered_by='Django-Echarts'),
    theme='bootstrap3.cerulean'
)

site_obj.add_widgets(
    Jumbotron('图表可视化', main_text='这是一个由django-echarts-starter驱动的可视化网站。', small_text='版本1.0'),
)
site_obj.add_link(LinkItem(text='Github仓库', url='https://github.com/kinegratii/django-echarts', new_page=True))

@site_obj.register_chart(name='c1', title='福建省各地市面积', description='福建省各地市面积排行', catalog='福建统计')
def mychart():
    bar = Bar().add_xaxis(["南平", "三明", "龙岩", "宁德", "漳州", "福州", "泉州", "莆田", "厦门"]).add_yaxis(
        '面积', [26300, 22900, 19050, 13450, 12600, 12150, 11020, 4119, 1576]
    ).set_global_opts(
        title_opts=opts.TitleOpts(title="福建省各地市面积排行", subtitle="单位:平方公里"))
    return bar

5 在项目的路由模块 urls.py 添加挂载点。

from django.conf.urls import url, include
from django.urls import path

from .site_views import site_obj

urlpatterns = [
    # Your urls
    path('', include(site_obj.urls))
]

6 启动开发服务器,打开浏览器预览结果。

python manage.py runserver 0.0.0.0:8900

预览图

first_chart_demo

文档

在线文档

示例

示例项目位于 example 文件夹。

第一步,安装依赖

cd example
pip install -r requirements.txt

第二步,启动项目开发服务器

python manage.py runserver 127.0.0.1:8000

访问本地地址: http://127.0.0.1:8000 ,示例运行结果

开源协议

项目基于 MIT开源协议,欢迎提交 Issue & Pull request 。