(一)需求分析&技术实现

(二)初步搭建Django环境

(三)页面布局&Django模板

(四)SQL+Pandas初步处理数据

(五)前端表单交互

(六)Ajax异步传参与加载

(七)前端数据格式的处理

(八)DataTables接管前端表格

(九)Pyecharts实现交互图表

(十)静态图表的展示

(十一)“导出数据至Excel”功能

(十二)添加和配置缓存

(十三)用户登录系统

(十四)部署Django至生产环境

既然强调是在线数据分析,那么顾名思义Web框架是一切的基础。其实很多语言都有出色的Web框架,我选用Python实现也仅仅是因为自己是二手程序员一手数据分析师,更熟悉Python罢了。而Django也不是Python下的唯一选择,Python下的还有Flask, Tornado, FastAPI等等选择,但我在实际使用中感觉基本上大同小异,使用者可以比较容易做到一通百通。

Django采用MTV(M-Model, T-Template, V-View)框架,其实是一种非常经典的Web开发结构MVC模式的变种。下面这张图很好的解释了MTV分别是什么:




使用pycharm进行数据分析 pycharm可以进行数据分析吗_pycharm显示全部数据


  • M - Model模型,负责数据储存在的服务器端基本结构,以及数据别名、验证信息等一些基础内容。
  • T - Template模板,负责后端传来的数据如何在Web前端展现以及前端的交互操作。
  • V - View视图,既负责与数据库做沟通增删改查,也负责加工数据决定什么数据传到前端。因此视图也是模型和模板的桥梁。

实际操作中,可以用cmd启动一个全新的Django项目,假设我们命名项目为datasite:


django-admin startproject datasite


并且在该项目下马上创建一个app如chpa_data:


python manage.py startapp chpa_data


也可以在Pycharm的New Project菜单中创建Django项目一歩搞定:


使用pycharm进行数据分析 pycharm可以进行数据分析吗_数据_02


可以在项目文件夹中执行下方命令启动开发服务器:


python manage.py runserver 0.0.0.0:8088


在浏览器中输入 127.0.0.1:8088,出现下方页面则表示启动成功


使用pycharm进行数据分析 pycharm可以进行数据分析吗_pycharm显示全部数据_03


此外,记得别忘了在datasite文件夹的settings.py文件内将chpa_data加入installed app:


INSTALLED_APPS = [


而此时的项目文件夹结构为:


使用pycharm进行数据分析 pycharm可以进行数据分析吗_数据_04


传统的Django项目第一步往往从models.py定义数据结构开始,继而编写views.py处理数据。此时项目页面还没有Template部分,一般需要手动在chpa_data文件夹下创建templates文件夹并编写对应views渲染对象的html模板。

但如果我们再次回忆文章前面部分的Django架构图片,可以意识到,Django最核心的部分其实是View层,而Model层和Template层都不是必须的。Django可以不自己编写Model,不使用自带的ORM,在View层用SQL Alchemy或Pyodbc等中间库直接用SQL语句操作数据库。Django也可以不渲染页面,在View层直接返回API的JsonResponse。

在本例当中,我决定不使用Model层。个人觉得Django ORM只有在处理事务型数据时有一些易用性和可读性方面的优势,在处理大量量化数据时,可以直接编写SQL语句或用SQL语句简单Select数据后用Pandas进行复杂处理。

Dummy测试数据链接:https://share.weiyun.com/q1EZl8lW 密码:xaw3kg

我们可以在views.py用类似下面的语句直接操作数据库将数据读取到Pandas的df:


from


注意上方代码中sqlalchemy的数据库连接引擎写法很多变,为各式数据库Dialect结合Driver的组合,详细请参考下方的页面。此处根据你选择的数据库也有可能需要下载额外的包。

https://docs.sqlalchemy.org/en/13/core/engines.htmldocs.sqlalchemy.org


此时,如果想要在开发服务器测试上方的views,我们还需要设置一下URL。

我们选择先在项目目录datasite文件夹的urls.py里引用app chpa_data的urls:


from


而在chpa_data目录里再手动创建urls.py,里面写入app下views.py里每个view对应的url:


from


注意上方URL是一个嵌套的关系,也就是我要访问views.index实际上需要访问的URL的是chpa/index而不是index。


使用pycharm进行数据分析 pycharm可以进行数据分析吗_数据_05

现在的项目结构,请注意两个文件夹里都有一个urls.py, datasite里的是启动项目自动生成的,chpa_data里的是自己创建的。前者引用后者。

在浏览器输入127.0.0.1:8088/chpa/index,出现下方页面,说明测试成功,返回了chpa_data app内views.py里"Select count(*) from data"的结果6065706,而0是Pandas的行索引。


使用pycharm进行数据分析 pycharm可以进行数据分析吗_使用pycharm进行数据分析_06


至此,我们打通了这个项目从后端到前端的数据链,实现了从浏览器的一行URL返回指定数据库SQL查询结果的过程,看似简单,却是最关键的一个步骤。

下一篇请移步:

ccpic:Python Django+SQL+Pandas+Pyecharts自建在线数据分析平台(三)zhuanlan.zhihu.com