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

Step 0: 使用新的 virtualenv 环境

建议使用 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 中新增 ‘myfirstvis.urls‘

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 是 Page() 类渲染网页所需要依赖的 echarts js 库,依赖的库的数量取决于所要渲染的图形种类。

host 是 echarts js 库的地址,默认提供的地址为 https://pyecharts.github.io/assets/js 当然,如果你愿意你也可以改变这个地址,先克隆 https://github.com/pyecharts/assets 然后将 js 文件夹挂载在你自己的服务器上即可。

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

将下面 html 模板代码保存为 pyecharts.html,请确保 pyecharts.html 文件的绝对路径为 <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 官方教程需要七步的这里我们三步就搞定了。

原文地址:https://www.cnblogs.com/Python6359/p/9123995.html

时间: 2024-08-26 01:07:16

Python:Django框架开发数据可视化网站的相关文章

Python Django 框架开发

参考文档: http://python.usyiyi.cn/django_182/intro/tutorial01.html #Django 1.8.2 文档 http://www.ziqiangxuetang.com/django/django-admin.html #Django 基础教程 1-1.安装Django框架(官网:https://www.djangoproject.com) pip install Django==1.9.1 1-2.创建一个网站项目 django-admin s

用python+django+twistd 开发一个属于自己的运维系统

开源的运维系统不少,比如nagios.zabbix.cati等等,但是遇到自己个性化的运维需求的时候,总是显的力不从心!最近在学习python,所以就考虑用python+django+twisted来定做一个完全个性化的运维系统. 运维系统有几个主要的功能:监控.分析.报警.更甚者直接根据分析的结果进行反应操作.而以上几点通过上述的框架可以比较容易的实现. 下面上图说明: 使用freemind整理了下思路: 下面是一些代码段,完整的代码下载见文档底部: Server: #!/usr/bin/en

Django框架开发中避免表单重复提交

Form表单做为web2.0时代的重要角色,也是我们与web网站进行数据交互的重要渠道,但是大家在web网站开发过程中,都会遇到一个问题,那就是如何避免表单重复提交,我们可不确定用户可在提交了一个表单后,是否有足够的耐心等待我们的程序加载完成,如果此时用户不耐烦的在前台重复刷新页面,那么就会造成数据重复提交.信息不准确,因此我们在程序设计时一定要规避这样的问题,接下来介绍一下在Django框架开发中如何避免此问题. 首先说明一下Http协议中两种非常常见的方法GET和POST. 1.GET方法往

利用 Python django 框架 输入汉字,数字,字符,等。。转成二维码!

利用 Python django 框架 输入汉字,数字,字符,等..转成二维码! 模块必备:Python环境 + pillow  + qrcode 模块 核心代码import qrcode qr = qrcode.QRCode( version=2, error_correction=qrcode.constants.ERROR_CORRECT_L, box_size=20, border=4, ) qr.add_data('你要生成的文件') qr.make(fit=True) img = q

Python进阶(四十)-数据可视化の使用matplotlib进行绘图

Python进阶(四十)-数据可视化の使用matplotlib进行绘图 前言 ??matplotlib是基于Python语言的开源项目,旨在为Python提供一个数据绘图包.我将在这篇文章中介绍matplotlib API的核心对象,并介绍如何使用这些对象来实现绘图.实际上,matplotlib的对象体系严谨而有趣,为使用者提供了巨大的发挥空间.用户在熟悉了核心对象之后,可以轻易的定制图像.matplotlib的对象体系也是计算机图形学的一个优秀范例.即使你不是Python程序员,你也可以从文中

Python Django框架实现商城项目源码加设计文档和注释

Python Django框架实现商城项目源码加设计文档和注释 链接:https://pan.baidu.com/s/1yN2iBgx3zmpTkoY8u1LWRg 提取码:lfsx 非常完整的django项目源码,分享给撸友们,不管是学习还是深造,都是可以学习借鉴的!! 原文地址:https://www.cnblogs.com/zyxlovesjy/p/12115491.html

python django框架(一)

s4day63内容回顾: 1. 安装 2. 创建用户 + 授权 3. 连接 - 数据库 终端创建数据库(字符编码) - 数据表 终端 ORM pymysql create ...)engine=innodb - 数据行 增 删 改 查 - limit - group by .... 关闭 问题:简述ORM原理? day64内容 1. 自己开发Web框架 - socket - http协议 - HTML知识 - 数据库(pymysql,SQLAlchemy) HTTP特点: 无状态.短连接 TCP

在Python中实现交互式数据可视化

最近,我一直在看美国德克萨斯州奥斯汀举办的SciPy 2015会议上的一段视频——“用Blaze和Bokeh创建Python数据应用程序”,并且情不自禁地反复思考这两个库赋予世界各地使用Python的数据科学家们的强大能力.在本文中,我将带你体验使用Bokeh实现数据可视化的各种可能途径,以及Bokeh为什么是每位数据科学家的必备“神器”. ◆ ◆ ◆ 什么是Bokeh? Bokeh是一个专门针对Web浏览器的呈现功能的交互式可视化Python库.这是Bokeh与其它可视化库最核心的区别.正如下

Python Django框架笔记(一):安装及创建项目

 #推荐一本书<Python核心编程>(适合有一定基础的),美国人Wesley Chun编写的,京东.淘宝应该都有.我是觉得写的很好,详细.简洁.满满的干货,不像有的书整本看完也没什么用. (一)      Web框架 Web开发除了全部从底层写起,还可以在其他人已有的基础上进行开发,简化开发流程.这些Web开发环境统称为Web框架,其目标是帮助开发者简化工作,如提供一些功能来完成一些通用任务,或提供一些资源来用于降低创建.更新.执行或扩展应用的工作量. Python Web框架既可以是单个或