Python:Django架構開發資料視覺效果網站

來源:互聯網
上載者:User

標籤:jpg   pytho   setting   org   map   include   cal   預設   apply   

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$ lsdb.sqlite3      manage.py       myechartsite    myfirstvis

在 myechartsite/settings.py 中註冊應用程式

# myechartsite/settings.pyINSTALLED_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.py2 from django.conf.urls import url3 4 from . import views5 6 urlpatterns = [7     url(r‘^$‘, views.index, name=‘index‘),8 ]

在 myechartsite/urls.py 中新增 ‘myfirstvis.urls‘

1 myechartsite/urls.py2 from django.conf.urls import include, url3 from django.contrib import admin4 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 / 100027         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 runserverYou 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:38Django 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 官方教程需要七步的這裡我們三步就搞定了。

 

Python:Django架構開發資料視覺效果網站

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.