pycharm显示全部数据_Python Django+SQL+Pandas+Pyecharts自建在线数据分析平台(二)

本篇是系列文章的第二篇:

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

(二)初步搭建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分别是什么:

38a5e18e7786cf5e96cf8672a56b32b0.png
  • 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项目一歩搞定:

e9439f07e648645a9738e8bf51f5b0c6.png

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

python manage.py runserver 0.0.0.0:8088

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

7b25060b38d53f21f8b16cc446cde7a2.png

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

INSTALLED_APPS = [

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

9af9d1552497f15d957c3e935710feaf.png

传统的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.html​docs.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。

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

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

39105234c9133996e2c8f7324151136c.png

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

下一篇请移步:

ccpic:Python Django+SQL+Pandas+Pyecharts自建在线数据分析平台(三)​zhuanlan.zhihu.com
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值