凡科网站内容怎么做效果好,网站推广方式大全,电脑网页上的视频怎么保存到本地,手机版wordpress怎样用为项目新建一个目录#xff0c;将其命名为django_pyecharts_demo, 在终端中切换到这个目录#xff0c;并创建一个虚拟环境。
python -m venv django_pyecharts激活虚拟环境
django_pyecharts\Scripts\activate要停止使用虚拟环境#xff0c;可执行命令
deactivate创建并激…为项目新建一个目录将其命名为django_pyecharts_demo, 在终端中切换到这个目录并创建一个虚拟环境。
python -m venv django_pyecharts激活虚拟环境
django_pyecharts\Scripts\activate要停止使用虚拟环境可执行命令
deactivate创建并激活虚拟环境后就可安装Django
(django_pyecharts)learning_log$ pip install Django pyechartsDjango仅在虚拟环境处于活动状态时才可用。 查看已安装的python库pip list。
(django_pyecharts) PS E:\python_work\Django\django_pyecharts pip list
Package Version
------------------- -------
asgiref 3.8.1
Django 5.0.3
djangorestframework 3.15.1
Jinja2 3.1.3
MarkupSafe 2.1.5
pip 22.3
prettytable 3.10.0
pyecharts 2.0.5
setuptools 65.5.0
simplejson 3.19.2
sqlparse 0.4.4
tzdata 2024.1
wcwidth 0.2.13新建一个项目
django-admin startproject pyecharts_django_demo .千万别忘了这个句点否则部署应用程序时将遭遇一些配置问题。如果忘记了这个句点要删除已创建的文件和文件夹django_pyecharts除外再重新运行这个命令。 Django将大部分与项目相关的信息存储在数据库中因此需要创建一个供Django使用的数据库。
python manage.py migrate核实Django是否正确地创建了项目。为此可执行命令runserver。
python manage.py runserver显示
Starting development server at http://127.0.0.1:8000/等同
http://localhost:8000/若要关闭这个服务器可切换到执行命令runserver 时所在的终端窗口再按Ctrl C即可。 如果出现错误消息That port is already in use指定端口被占用请执行命令
python manage.py runserver 8001让Diango使用另一个端口。 在前面打开的终端窗口中应该还运行着runserver。 请再打开一个终端窗口或标签页并切换到manage.py所在的目录。激活该虚拟环境
django_pyecharts\Scripts\activate再执行命令startapp
python manage.py startapp demo在 pyecharts_django_demo/settings.py 中注册应用程序。
# pyecharts_django_demo/settings.py
INSTALLED_APPS [demo,django.contrib.admin,django.contrib.auth,django.contrib.contenttypes,django.contrib.sessions,django.contrib.messages,django.contrib.staticfiles,
]编辑 demo/urls.py 文件
# demo/urls.py
from django.urls import include
from django.urls import re_path as url
from . import viewsurlpatterns [url(r^$, views.index, nameindex),
]在 pyecharts_django_demo/urls.py 中新增 ‘demo.urls’
from django.contrib import admin
from django.urls import path
from django.urls import include
from django.urls import re_path as urlurlpatterns [path(admin/, admin.site.urls),url(r^demo/, include(demo.urls))Step 1: 拷贝 pyecharts 模板 先在 demo 文件夹下新建 templates 文件夹, 将 pyecharts 模板位于 pyecharts.render.templates 拷贝至刚新建的 templates 文件夹,
Step 2: 渲染图表 将下列代码保存到 demo/views.py 中。
from jinja2 import Environment, FileSystemLoader
from pyecharts.globals import CurrentConfig
from django.http import HttpResponseCurrentConfig.GLOBAL_ENV Environment(loaderFileSystemLoader(./demo/templates))from pyecharts import options as opts
from pyecharts.charts import Bardef index(request):c (Bar().add_xaxis([衬衫, 羊毛衫, 雪纺衫, 裤子, 高跟鞋, 袜子]).add_yaxis(商家A, [5, 20, 36, 10, 75, 90]).add_yaxis(商家B, [15, 25, 16, 55, 48, 8]).set_global_opts(title_optsopts.TitleOpts(titleBar-基本示例, subtitle我是副标题)))return HttpResponse(c.render_embed())Step 3: 运行项目
python manage.py runserver使用浏览器打开 http://127.0.0.1:8000/demo 即可访问服务 Django 前后端分离 Step 0: 建立文件夹、虚拟环境等前几步同上。 Step 1: 新建一个 Django 项目
django-admin startproject pyecharts_django_demo .
python manage.py migrate
python manage.py startapp demo在 pyecharts_django_demo/settings.py 中注册应用程序
# pyecharts_django_demo/settings.py
INSTALLED_APPS [demo, # --- app 名称rest_framework,django.contrib.admin,django.contrib.auth,django.contrib.contenttypes,django.contrib.sessions,django.contrib.messages,django.contrib.staticfiles,
]在 pyecharts_django_demo/urls.py 中新增 ‘demo.urls’
# pyecharts_django_demo/urls.py
from django.contrib import admin
from django.urls import path
from django.urls import include
from django.urls import re_path as urlurlpatterns [path(admin/, admin.site.urls),url(r^demo/, include(demo.urls))
]编辑 demo/urls.py 文件(没有就新建一个)
from django.urls import include
from django.urls import re_path as url
from . import viewsurlpatterns [url(r^bar/$, views.ChartView.as_view(), namedemo),url(r^index/$, views.IndexView.as_view(), namedemo),
]Step 2 编写画图 HTML 代码 先在根目录文件夹下新建 templates 文件夹新建一个 index.html
(django_pyecharts) PS E:\python_work\Django\django_pyecharts_demo ls目录: E:\python_work\Django\django_pyecharts_demoMode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2024/3/24 14:08 demo
d----- 2024/3/24 9:43 django_pyecharts
d----- 2024/3/24 14:06 pyecharts_django_demo
d----- 2024/3/24 9:53 templates
-a---- 2024/3/24 9:45 131072 db.sqlite3
-a---- 2024/3/24 9:45 699 manage.pyindex.html
!DOCTYPE html
html
headmeta charsetUTF-8titleAwesome-pyecharts/titlescript srchttps://cdn.bootcss.com/jquery/3.0.0/jquery.min.js/scriptscript typetext/javascript srchttps://assets.pyecharts.org/assets/echarts.min.js/script/head
bodydiv idbar stylewidth:1000px; height:600px;/divscriptvar chart echarts.init(document.getElementById(bar), white, {renderer: canvas});$(function () {fetchData(chart);});function fetchData() {$.ajax({type: GET,url: http://127.0.0.1:8000/demo/bar,dataType: json,success: function (result) {chart.setOption(result.data);}});}/script
/body
/htmlStep 3: 编写 Django 和 pyecharts 代码渲染图表
注: 目前由于 json 数据类型的问题无法将 pyecharts 中的 JSCode 类型的数据转换成 json 数据格式返回到前端页面中使用。因此在使用前后端分离的情况下尽量避免使用 JSCode 进行画图。
将下列代码保存到 demo/views.py 中
from django.shortcuts import render# Create your views here.
import json
from random import randrangefrom django.http import HttpResponse
from rest_framework.views import APIViewfrom 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_typeapplication/json,)response[Access-Control-Allow-Origin] *return responsedef json_response(data, code200):data {code: code,msg: success,data: data,}return response_as_json(data)def json_error(error_stringerror, code500, **kwargs):data {code: code,msg: error_string,data: {}}data.update(kwargs)return response_as_json(data)JsonResponse json_response
JsonError json_errordef 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_optsopts.TitleOpts(titleBar-基本示例, subtitle我是副标题)).dump_options_with_quotes())return cclass ChartView(APIView):def get(self, request, *args, **kwargs):return JsonResponse(json.loads(bar_base()))class IndexView(APIView):def get(self, request, *args, **kwargs):return HttpResponse(contentopen(./templates/index.html).read())
Step 4: 运行项目
python manage.py runserver使用浏览器打开 http://127.0.0.1:8000/demo/index 即可访问服务。