业内揭秘:手把手教您用Django构建数据分析平台

Posted 数据分析部落

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了业内揭秘:手把手教您用Django构建数据分析平台相关的知识,希望对你有一定的参考价值。

知之愈明,则行之愈笃;行之愈笃,则知之益明。

每个人的心中都有梦,可你去实践了吗?


每一个数据人,肯定都不陌生百度数据开放平台,不陌生零点的数据平台,不陌生艾瑞的数据平台,还有很多新锐的数据服务商,如星图数据等等,我们在惊呼它们吸金能力的同时,对它们的数据产品更是大大佩服。


这个系列,jacky将与您一起探讨主流数据产品的架构思路,利用Python中的Django框架,手把手带您独立的开发、建构一款数据分析平台,并试图通过这个系列的分享告诉大家:万事万物的原理都只是隔着一层纸,只要你行动,就能实现你的梦想。下面,跟jacky一起,在数据的江湖里,逆袭吧!


文:朱元禄(@数据分析-jacky)



记得刚刚入行时,我就很好奇,这么多数据平台是怎么构建出来的,那时我就想,这得多少人搭建,得多少高智商的人在一起协作,才能完成这样的数据产品啊。


随着我入行的时间逐步增加,我自己也积累了一些思路和想法,我发现用Python中的Django框架,即使是数据小白也能构建一个自己的数据平台。


当然,构建数据平台的途径有很多种,比较当下比较火爆是Java,但是Python不仅强大并且灵活好学,利用Python中的Django框架,数据小白也能独立上手构建数据平台,这也是我选择用Django框架跟大家分享的原因和目的,下面开始我的分享:


基础铺垫—MTV模型


1.一个粗略的过程


大家看到模型、算法这些词,是不是觉得很深奥? 往下看下去,都不过是文字游戏,而已。


在谈MTV模型之前,我们先回想下我们使用一些数据平台的过程是怎样的,以百度指数举例:



我们在使用百度指数的时候,第一步肯定是输入网址。第二步,我们会点击和查询我们的需求,这时网页就会展现给我们一个想要的结果。


这个过程可以粗略的描述为:

Request——>>  服务器(Djangoweb)——>> Response

(我们访问百度指数的服务器,服务器再给我们返回信息和响应)


进一步说,这个过程有两步:

1)Request向服务器(Djangoweb)发起请求

  • 点击页面,或查看网页信息,都是这个过程

2)服务器回应-Response

  • 服务器抛出的可能是某个页面,也可能是图片,或是一组动态的数据


上面的过程只是一个概括性的过程,更细致的过程,我们就要理解好MTV模型。


2.更为细致的过程


(1)MTV的含义


  • M-数据库层

  • T-模版层

  • V-控制层


Views层

  • 作用

    • 调配我们要加载网页的数据

    • 把我们要加载的对应的网站找出来


Models层

是一个托管数据的层级,Models是用python的方法去进行数据库中的增、删、改、查、存储等操作

  • 作用

    • Views首先会在Models中查找我们要的数据;

    • 接下来,Views会把从Models层中找到的数据,装载在Templates层中


Templates层

Templates层就是模版层,网页的样貌就在模板层中。


(2)更细致的描述

我们点击数据平台的网页,服务器会接受一个请求,这个请求对应着一个URL;我们要找到特定的views(不同的页面,会有不同的views),这个特定的views会从models层中调取特定的数据,并把这个数据装载在templates层中,最后响应呈现给我们一个有数据的网页。

有朋友可能注意到,当我们打开百度指数成都车展网页的时候,会看到有些数据是不断变化的,这个就相当于不同的templates加载不同的数据。

项目实操—一个简单的构建


接下来,我们使用的工具是Pycharm专业版,请提前到官网下载安装


第1步:打开IDE,新建New Project


业内揭秘:手把手教您用Django构建数据分析平台(一)


第2步:在新建项目下,创建Django


业内揭秘:手把手教您用Django构建数据分析平台(一)


第3步:对新建的Django进行调配和设置

后续我们可能要新建多个网站,考虑到每个网站的修改变动不互相影响,我们采用创建虚拟环境的方法,当然,有些初学者系统创建虚拟环境会失败,这里作为学习,不创建虚拟环境,对后面的学习也是没有影响的。


业内揭秘:手把手教您用Django构建数据分析平台(一)

业内揭秘:手把手教您用Django构建数据分析平台(一)


起一个项目的名称并创建:

业内揭秘:手把手教您用Django构建数据分析平台(一)


这样,Django的内部框架就搭建成功了,我们来看看效果:

业内揭秘:手把手教您用Django构建数据分析平台(一)


第4步:使用manage.py文件去创建一个可视化网站


为什么用manage.py去创建呢?我们通过manage的文件代码可以看出:manage帮我们搞定了很多的环境变量,对于包的导入和查找来说,Django都是一个很复杂的环境,所以用manage文件创建可以保证文件都在Django目录下。


业内揭秘:手把手教您用Django构建数据分析平台(一)


如下图所示:目录中有Django的文件,就说明我们创建成功了

业内揭秘:手把手教您用Django构建数据分析平台(一)

  • 这里需要提醒的是,有的朋友对manage执行startapp命令时,可能会出现如下错误提示:

业内揭秘:手把手教您用Django构建数据分析平台(一)

  • 解决方案:参照stack,在电脑终端输入以下代码:

业内揭秘:手把手教您用Django构建数据分析平台(一)

业内揭秘:手把手教您用Django构建数据分析平台(一)


第5步:使用settings文件添加网站


settings文件中包含Django站点的路径和安全设施


业内揭秘:手把手教您用Django构建数据分析平台(一)


第6步:在templates层中填加可视化的模版

再回顾一下开头的MTV模型:首先我们向服务器发起请求(Request到url),接下来url找到了对应的调配层views,最后views从templates和models层中找想要的数据和网页,这就是Django创建网站的整体逻辑。但是,我们具体操作Django时,这个过程实际上是反过来的:我们先对templates网页进行设计,接着反过来填加调配它的视图函数views,最后在urls文件下给它分配一个链接。本次第一部分分享,我们先来创建一个静态的网页,这时models层是用不上的(models在后面的连载中跟大家分享)。

业内揭秘:手把手教您用Django构建数据分析平台(一)


点击右键创建htm文件,将html文件命名为index,下图是我们要创建访问网页的首页:

业内揭秘:手把手教您用Django构建数据分析平台(一)


第7步:在views层中调用templates的视图函数


业内揭秘:手把手教您用Django构建数据分析平台(一)


第8步:在urls中分配网址


上面,我们只是创造了一个函数index,一个网页是否能出现在网站上,网址是衡量它唯一的途径, 接下来,我们就要在urls中给我们的网站分配一个网址


业内揭秘:手把手教您用Django构建数据分析平台(一)


第9步:运行 Django项目,创建网站


业内揭秘:手把手教您用Django构建数据分析平台(一)


这样,输入网址:http://127.0.0.1:8000/index ,我们的数据可视化网站就初步搭建完成了,来看看效果:

业内揭秘:手把手教您用Django构建数据分析平台(一)这里要特别注意的是:由于django版本不同,有些朋友在运行django的时候,会报错:

解决方案为:


以上9步,一个初步的数据平台的框架就搭建好了,是不是很简单。


下次jacky会跟大家分享:如何在数据平台中加载网页的样式、CSS以及图片,敬请关注!



以上是关于业内揭秘:手把手教您用Django构建数据分析平台的主要内容,如果未能解决你的问题,请参考以下文章

超全面!手把手教您用 ELK 分析 Nginx 日志

教您用Xmanager5连接远程主机

教您用几何画板画相切的圆

手把手教您解决90%的自然语言处理问题

005 - 手把手教您如何在万方数据库查询真正的杂志社查稿电话,再也不会被骗了!

手把手教您在PyCharm中连接云端资源进行代码调试