huichao
V2EX  ›  Flask

大点儿的项目你会选择 flask 开发 api 吗?

By huichao at 2020 年 12 月 18 日 · 12571 次点击
45 条回复  •  2020-12-19 11:51:09 +08:00
abersheeran
   1
abersheeran  
   2020 年 12 月 18 日
你这是多想不开,要用关系型数据库的项目用 Django 一把梭啊。其他项目用 bottle/starlette 速度快、代码简单易读。
huichao
   2
huichao  
OP
   2020 年 12 月 18 日
因为已经有前端, 计划做个前后端分离,vue.js + flask (api) 这样的方式, 可是项目功能比较多 不知道 flask 并发如何?主要喜欢 flask 的简单,以后维护起来容易。
abersheeran
   3
abersheeran  
   2020 年 12 月 18 日   ❤️ 1
@huichao Python 流行框架的基准测试里,Flask 也就比 Django 快一点,比其他的都慢多了,可是 Django 功能多啊,真给 Flask 加那么多东西,比 Django 还慢。简单来说,Flask 就是最慢的 Python Web 框架。
viiii
   4
viiii  
   2020 年 12 月 18 日   ❤️ 2
要简单 + 速度快, 建议看一下 FASTAPI
如果想最简单实践, 最快出产品, django+rest API 足够了, 性能嘛....业务量真的需要?
johnsona
   5
johnsona  
   2020 年 12 月 18 日
python 写 rest 接口的话,用 drf 或者你想试试 fastapi 也可以,用 flask 的话,就像一楼说的。不过你没经历过坏,你估计也感受不到 drf 的香
ytymf
   6
ytymf  
   2020 年 12 月 18 日
flask 可不简单,找插件试错的时间,django 都做完了。
acmore
   7
acmore  
   2020 年 12 月 18 日
简单 ≠ 易于维护,因为项目的复杂很多时候在于项目本身,框架的作用在于能更好地掌控复杂性,复杂的框架往往在掌控复杂性上做了更多事情。
说人话就是复杂的项目用复杂的框架,简单的项目用简单的框架。
CismonX
   8
CismonX  
   2020 年 12 月 18 日   ❤️ 1
我维护过公司的一个 flask 项目,10w 行的屎山

听说他们最近打算拿 spring boot 重构。。还好我早就不在那个组了
johnsona
   9
johnsona  
   2020 年 12 月 18 日
@CismonX 重构更可怕,重构不算 kpi,还难
jtsai
   10
jtsai  
   2020 年 12 月 18 日
不喜欢 python 的 orm
johnsona
   11
johnsona  
   2020 年 12 月 18 日
很多人说性能问题,大可不必,真有这个量,不会舍不得花钱的,上集群部署,数据库有压力,django 的 orm 支持分库,不存在问题
uptonking
   12
uptonking  
   2020 年 12 月 18 日 via iPhone
all in js 不香吗,node 服务端框架 nestjs 高仿 java 的 spring,用来做 crud 的 rest api 很容易
johnsona
   13
johnsona  
   2020 年 12 月 18 日
@uptonking 全都丢给前端去写,手动 doge
tabris17
   14
tabris17  
   2020 年 12 月 18 日
flask 慢得要命,而且配套还不完善,很多插件都是 N 年不维护了
maocat
   15
maocat  
   2020 年 12 月 18 日
会
看过一些大点 flask 写的项目( apache superset,宝塔面板 )
公司自己内部弄了一套 flask 的脚手架(其实就是把 flask 拼装成 django),fork 了一些库加了很多功能(大多数只用一次), 然后开始填业务上的屎
上面的人都还在比较框架的快慢,我更赞同 #11 的说法 当业务发展到一个量级的时候,服务架构才是应对性能问题的最好方法
hyqCrystal
   16
hyqCrystal  
   2020 年 12 月 18 日   ❤️ 1
大点的多大 springboot springcloud 不好使吗
huichao
   17
huichao  
OP
   2020 年 12 月 18 日
这个前后端分离的设计是为了重写很久之前(大概 10 年前用 asp.net 做的)一个 web 系统,里面功能比较多,客户要保留,我大概看了一下有 4 千多个(添加,修改,删除,查询,报表等等)功能操作。这个可能也算个中型的项目了,现在在选择后端用什么写。主要得开发速度快, 易维护,以后肯定会加多新业务或功能。
charmToby
   18
charmToby  
   2020 年 12 月 18 日
可以试试 FastAPI,感觉比 Flask 好用多了。
Jackeriss
   19
Jackeriss  
   2020 年 12 月 18 日 via iPhone
flask 是真不行,不知道为啥会流行,好像现在也并不流行。。。
fcmio
   20
fcmio  
   2020 年 12 月 18 日 via iPhone
Flask 写了好几个项目,看到这个帖子心惊肉跳的感觉😹😹Python 还有什么框架吗
rexyan
   21
rexyan  
   2020 年 12 月 18 日 via Android
不建议,太灵活
coloz
   22
coloz  
   2020 年 12 月 18 日
fastapi 更适合写 api
windfarer
   23
windfarer  
   2020 年 12 月 18 日
Django 香得很
abersheeran
   24
abersheeran  
   2020 年 12 月 18 日   ❤️ 1
@ShuoHui 如果你喜欢微框架,那么推荐 bottle / starlette ( fastapi )。否则只推荐 Django 。
sidegem
   25
sidegem  
   2020 年 12 月 18 日
一直在用 flask 看了楼上的回复瑟瑟发抖
abersheeran
   26
abersheeran  
   2020 年 12 月 18 日
@Jackeriss 运营。Flask 的作者自己都说过,决定开源项目流行度的,最重要的不是代码怎么样而是运营。“没人真的会认真去看你是否实现了你宣传的”。
simple2025
   27
simple2025  
   2020 年 12 月 18 日
@huichao 4K 个操作?
YUX
   28
YUX  
   2020 年 12 月 18 日
我自己的小项目用的是自己魔改的 flask 本地(m1 mba)压测 能跑 20000+ Requests/sec 😂 方法就是增加进程来应对高并发

但是正在搞的下一个项目妥妥 fastapi
YUX
   29
YUX  
   2020 年 12 月 18 日
@YUX 拥抱 asyncio 叭!
fanjianhang
   30
fanjianhang  
   2020 年 12 月 18 日 via Android
用过,不是很香
huichao
   31
huichao  
OP
   2020 年 12 月 18 日
@chenqh 是的。看他们的 source code 算出来的。 看来试试 Django 和 fastapi 了要,Django 有过一个项目,fastapi 还没做过,python 也都是刚开始用不到 2 年,如果 python 很多问题我可能会用回 php 了,可 php 现在在走下坡路,要考虑下个 10 年 ☺️。python 可以的,我看好 python 。
westoy
   32
westoy  
   2020 年 12 月 18 日
@Jackeriss

django 当时和他们的主业务耦合太紧了, 自由度很低, 而且性能有点差。 当时有种说法就是你用 django 去写 django 合适的项目, 你会非常舒服, 但反之会很痛苦。

turbogears 和 pylons 又三天两头变, 而且依赖的三方库很多很散, 安装包冲突装不上,官方教程的案例跑不通是常有的事

flask 属于折中, 自由度高, 而且依赖的 wekzeug 、jinja 之类的又都是 pocoo 自己的, 可靠性也强, 文档也写的好
iceneet
   33
iceneet  
   2020 年 12 月 18 日
没必要吧 何必折磨自己 用 django 不更好
hongweiliuruige
   34
hongweiliuruige  
   2020 年 12 月 18 日   ❤️ 1
nestjs + typeorm + react-hook/vue3 ts 全栈不香吗,,要性能有性能,要可维护 ts 大法好,要将来招人 js 程序员最多。。
abersheeran
   35
abersheeran  
   2020 年 12 月 18 日
@YUX asyncio 的 ORM 没有好用的吧……hhh,如果不在乎这方面,asyncio 那挺好的。
Jackeriss
   36
Jackeriss  
   2020 年 12 月 18 日
@westoy #32 你说的对,但是到了 asyncio 和前后端分离时代 Flask 就没多大优势了,fastAPI 是完美替代品。
brendanliu
   37
brendanliu  
   2020 年 12 月 18 日
就没有人提 sanic 么
simple2025
   38
simple2025  
   2020 年 12 月 18 日
@huichao 国内下个 10 年,应该 golang 会火一点,当然 java 常青树
TypeError
   39
TypeError  
   2020 年 12 月 18 日 via Android
Python 里一直用 tornado
不过之后估计换 Go + Gin 了
ericwood067
   40
ericwood067  
   2020 年 12 月 18 日
之前自己的小项目是用 flask 写的,看了大家的推荐,是时候试试 fastAPI 了。。
vagra
   41
vagra  
   2020 年 12 月 18 日
flask 确实慢。十倍地慢!

我用 calibre-web 搭了个网站,这就是 flask 开发的,测速,比另外几个 php 的网站慢了 10 倍。
dayeye2006199
   42
dayeye2006199  
   2020 年 12 月 19 日
flask 项目需要会代码组织,否则写在若干个巨大无比的文件,会出现上面提到的几万行的情况。
组织需要动脑筋,不想动脑筋,就 django rest 这一套把,糙快猛,代码质量一般不会太差。
darknoll
   43
darknoll  
   2020 年 12 月 19 日
用这玩意儿不如用 node
exploreexe
   44
exploreexe  
   2020 年 12 月 19 日
@CismonX #8 10w 行的屎山 这形容可太真实了 哈哈哈
nonduality
   45
nonduality  
   2020 年 12 月 19 日   ❤️ 1
@Jackeriss 我觉得 Flask 流行起来的部分原因是,入门很简单,按教程要求写个函数,用修饰器绑定路由看起来也很漂亮,完了一个 py 文件就能跑起来,这样把很多人引上贼船。还好我不在意这个,用 Django 省事不折腾。
© 2026 V2EX · 88ms · 3.9.8.5