從零開始搭建django前后端分離項目 系列一(技術選型)


前言

最近公司要求基於公司的hadoop平台做一個關於電信移動網絡的數據分析平台,整個項目需求大體分為四大功能模塊:數據挖掘分析、報表數據查詢、GIS地理化展示、任務監控管理。由於頁面功能較復雜,所以采用前后端分離方式開發。前端采用webpack+vue+vue-router+axios技術棧,后端用django進行開發。從搭建到上線,整個項目前前后后花了差不多一個月時間,中途也遇到一些問題,不過還好都解決了。由於是個人項目,所以我打算把源碼貢獻出來大家一起討論學習。

 

源代碼

后端:https://github.com/dotafeiying/myproject

前端:https://github.com/dotafeiying/appfont

 

關於技術選型

由於頁面交互較多,所以整個項目采用前后端分離方式開發。使用Vue.js作為前端框架,代替Django本身較為孱弱的模板引擎,Django則作為服務端提供api接口,使得前后端實現完全分離,更適合單頁應用的開發構建。

 

使用框架

前端:

webpack + vue + axios + element-ui + iview + zui + jquery

后端:

django + celery

數據庫:

mysql + redis

數據分析:

impala + pandas + sklearn

 

項目目錄

前端

后端

 

 

實現的功能

1、文件上傳預覽

2、異步任務執行

3、websocket實現實時進度

4、表格分頁

5、excel文件動態導出

6、pandas數據分析

7、impala大數據實時查詢分析

8、KMeans、DBSCAN聚類分析

9、距離計算算法優化

10、GIS地圖展示

11、websocket實現實時進度和動態渲染

12、百度地圖批量經緯度轉換(服務端實現)

13、歷史數據流式查詢,解決數據量過大問題

14、樹組件懶加載,改善用戶體驗

15、excel文件流式導出

16、celery異步任務監控管理,websocket實時監控

17、django后台管理

18、項目部署nginx+uwsgi+django+centos7.5

 

效果圖:

文件上傳前進行數據核查和預覽

 

異步任務執行和實時進度

表格分頁

海量點聚類分析和GIS展示

 歷史數據流式查詢和樹節點懶加載

 

異步任務實時監控和管理

 

打賞

免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號  © 2018-2021 CODEPRJ.COM