请教一个网站搭建的最佳实践

2021-01-19 22:29:18 +08:00
 volvo007

大体上是一个 IoT 的项目管理+数据展示页面,主要需求:

现在问题是,目前 py 的框架掌握还都比较浅。Flask,Django 和 fastapi,哪一个比较适合做上面的东西? js 的话也不算太会,刚入门。不过有需要我也可以花些时间自学

IoT 因为时间序列数据很多,目前数据库 PostgreSQL + timescaledb 插件还行

多谢论坛大佬指点

2905 次点击
所在节点    Python
9 条回复
opengps
2021-01-19 22:32:00 +08:00
没看到并发数要求,单机在承载高并发上存在天然瓶颈的
volvo007
2021-01-19 23:07:48 +08:00
@opengps 谢谢关注,并发要求可以理解为“不需要” 😂,因为用户真的很少,同时在线的也就十来人而且大家基本都愿意等个几秒到十秒等到图像出来,这个没啥要求
opengps
2021-01-19 23:36:12 +08:00
@volvo007 关于并发数,你只想到了用户读取并发,没考虑 iot 设备数据写入并发,以我的工作经历为例(车载 gps 设备回发数据,某个时间点的线上数据),15 万设备,每秒钟单盘极限写入能力为 3000 行。一个月的历史数据是 15 亿。
我举例重点在于,对于 iot 类别的项目,上亿的数据,查询未必是难点,写入耗费的时间和 io 才是项目重点要解决的地方。
mmikoto
2021-01-19 23:42:06 +08:00
github 有个开源项目叫 thingsboard,但是 java 的,几乎完美契合你的要求,除了用户权限可能不太符合,但是应该够用
volvo007
2021-01-19 23:51:45 +08:00
@opengps 哦原来是这一块,学艺不精哈,补充下。目前 SSD 大小是 4T,日写入量是 100w,大小大约只有 10M 。一年的数量不会高于 50G
根据目前的数据探索来看,每秒钟的写入量稳定在 5k-5k5 之间
volvo007
2021-01-19 23:53:20 +08:00
@mmikoto 谢谢指点!不确定 java 还学不学得动了😂 毕竟全干工程师,一大堆活等着……
nonduality
2021-01-20 13:35:37 +08:00
依我看,还是上 Django 吧,Django 自带用户权限管理,还有多个权限管理库可以使用,可以参考这篇 ,搜关键字“Controlling access: a Django permission apps comparison”(不过我写的一个项目由于比较复杂,自己撸了一套权限管理方案)。交互式展示估计得用 highchart 或 echart 之类的 js 库。

FastApi 更适合开发 API server,跟你的要求不太一致; Flask 需要自配很多东西,等弄齐了,说不定你用 django 都写完了。
encro
2021-01-20 14:14:59 +08:00
如果 django admin 够用的话,那就 django 吧,自带权限够用了。
如果希望高度自定义界面,自己慢慢写,可以选择 fastapi,毕竟 django 和 flask 都是代码提示不友好的。


个人感觉 python django 用来做做小工具还是可以,企业应用的话,需要自定义太多,最后往往原型 3 天,改起来三个月。
volvo007
2021-01-22 10:40:40 +08:00
@nonduality
我纠结的其实也是这几个点😂

Django 自带 admin 应该好写,但是绘图方面就要再学 js 和相关库
flask 接触最多,而且可以调用 dash/plotly 这种直接做交互 dashboard,但是要自己凑一堆组件头大
fastapi 看起来比较简单也能挂载 flask app,但是感觉要一次性通过接口返回一百万数据什么的,总感觉很奇怪

并不清楚这几个框架在生产环境下的表现,所以就迷茫了
不过生产环境 Django 用得多那我就选 Django 吧(毕竟 Instagram 也撑住了)多谢🙏

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/746460

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX