需求:公司的hadoop平台做一个关于电信移动网络的数据分析平台,项目需求分四个模块:数据挖掘分析,报表数据查询,GIS地理化展示,任务监控管理。由于业务功能复杂采用前后端分离的方式。前端:采用webpack+vue+vue-router+axios技术栈,后端Django。
个人一些见解:为什么要学django,django生态非常丰富,第三方库,插件。开发效率极高,将来对异步的的支持,开源框架。适合于一些大型企业级项目开发,但对于互联网项目并发量达不到要求。
可以做工资内部的所有系统,公司官网,toB的一些软件开发项目。
为什么用vue?因为django简单的模板引擎不足以支撑项目的开发,或说是不灵活,效率低下。
如何部署?同样将静态文件交给nginx,通过gunicorn或uwsgi交给django,gunicorn的内存占用量小,django其他的一些性能问题将来都能优化解决,成为springboot的有利竞争者。
源代码
后端: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
model问题
- https://juejin.im/post/5987f51e51882549475a916d
Django 用户认证系统提供了一个内置的 User 对象,用于记录用户的用户名,密码等个人信息。对于 Django 内置的 User 模型, 仅包含以下一些主要的属性:
username,即用户名
password,密码
email,邮箱
first_name,名
last_name,姓
对于一些网站来说,用户可能还包含有昵称、头像、个性签名等等其它属性,因此仅仅使用 Django 内置的 User 模型是不够。好在 Django 用户系统遵循可拓展的设计原则,我们可以方便地拓展 User 模型。
- https://www.cnblogs.com/feixuelove1009/p/8419493.html
创建模型元数据的一些参数