Python:Django框架开发数据可视化网站

匿名 (未验证) 提交于 2019-12-02 22:51:30

建议使用 1.11.4 版本的 Django

$ virtualenv --no-site-packages pyecharts-env $ source pyecharts-env/bin/activate $ pip install django==1.11.4 $ pip install pyecharts

Step 1: 新建一个 django 项目

$ django-admin startproject myechartsite

创建一个应用程序

$ python manage.py startapp myfirstvis $ ls db.sqlite3      manage.py       myechartsite    myfirstvis

myechartsite/settings.py

# myechartsite/settings.py INSTALLED_APPS = [     'django.contrib.admin',     'django.contrib.auth',     'django.contrib.contenttypes',     'django.contrib.sessions',     'django.contrib.messages',     'django.contrib.staticfiles',     'myfirstvis'  # <--- ]

我们先编辑 urls.py.这文件在 Django 里的功能是把前段的 HTTP 需求和后台服务函数挂钩。在 Step3,我们再引入后端服务函数

1 # myfirstvis/urls.py 2 from django.conf.urls import url 3  4 from . import views 5  6 urlpatterns = [ 7     url(r'^$', views.index, name='index'), 8 ]

myechartsite/urls.py

1 myechartsite/urls.py 2 from django.conf.urls import include, url 3 from django.contrib import admin 4  5 urlpatterns = [ 6     url(r'^admin/', admin.site.urls), 7     url(r'myfirstvis/', include('myfirstvis.urls'))  # <--- 8 ]

Step 2: 处理视图功能部分

myfirstvis/views.py

 1 from __future__ import unicode_literals  2 import math  3   4 from django.http import HttpResponse  5 from django.template import loader  6 from pyecharts import Line3D  7   8   9 REMOTE_HOST = "https://pyecharts.github.io/assets/js" 10  11  12 def index(request): 13     template = loader.get_template('myfirstvis/pyecharts.html') 14     l3d = line3d() 15     context = dict( 16         myechart=l3d.render_embed(), 17         host=REMOTE_HOST, 18         script_list=l3d.get_js_dependencies() 19     ) 20     return HttpResponse(template.render(context, request)) 21  22  23 def line3d(): 24     _data = [] 25     for t in range(0, 25000): 26         _t = t / 1000 27         x = (1 + 0.25 * math.cos(75 * _t)) * math.cos(_t) 28         y = (1 + 0.25 * math.cos(75 * _t)) * math.sin(_t) 29         z = _t + 2.0 * math.sin(75 * _t) 30         _data.append([x, y, z]) 31     range_color = [ 32         '#313695', '#4575b4', '#74add1', '#abd9e9', '#e0f3f8', '#ffffbf', 33         '#fee090', '#fdae61', '#f46d43', '#d73027', '#a50026'] 34     line3d = Line3D("3D line plot demo", width=1200, height=600) 35     line3d.add("", _data, is_visualmap=True, 36                visual_range_color=range_color, visual_range=[0, 30], 37                is_grid3D_rotate=True, grid3D_rotate_speed=180) 38     return line3d

cript_list

hosthttps://pyecharts.github.io/assets/jshttps://github.com/pyecharts/assetsjs

Step 3: 为项目提供自己的模板

Windows ϵͳ


在 myfirstvis 目录下,新建 templates/myfirstvis 子目录

myfirstvis Ŀ¼

― myfirstvis     ├―― admin.py     ├―― apps.py     ├―― __init__.py     ├―― migrations     │   ├―― __init__.py     ├―― models.py     ├―― templates     │   └―― myfirstvis     │       └―― pyecharts.html     ├―― tests.py     ├―― urls.py     └―― views.py

<project root>/myfirstvis/templates/myfirstvis

 1 <!-- myfirstvis/templates/pyecharts.html -->  2 <!DOCTYPE html>  3 <html>  4   5 <head>  6     <meta charset="utf-8">  7     <title>Proudly presented by PycCharts</title>  8     {% for jsfile_name in script_list %}  9         <script src="{{ host }}/{{ jsfile_name }}.js"></script> 10     {% endfor %} 11 </head> 12  13 <body> 14   {{ myechart|safe }} 15 </body> 16  17 </html>

Step 4: 运行项目

$ cd myechartsite $ python manage.py runserver  You have 13 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions. Run 'python manage.py migrate' to apply them.  August 08, 2017 - 05:48:38 Django version 1.11.4, using settings 'myechartsite.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CONTROL-C.

http://localhost:8000/myfirstvis/,你就可以看到酷炫的 3D 图了

看到了吧,只需要简单的几步就可以使用 pyecharts 创建可视化的图表。Django 官方教程需要七步的这里我们三步就搞定了。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!