1. 程式人生 > >從零開始搭建django前後端分離專案 系列一(技術選型)

從零開始搭建django前後端分離專案 系列一(技術選型)

前言

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

原始碼

關於技術選型

由於頁面互動較多,所以整個專案採用前後端分離方式開發。使用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展示

 歷史資料流式查詢和樹節點懶載入

 

非同步任務實時監控和管理