关于 Flask 项目的代码文件组织

2019-11-07 01:21:06 +08:00
 Livid
是否有什么大型的基于 Flask 框架的开源项目,想学习一下他们是如何组织代码的。
9828 次点击
所在节点    Python
49 条回复
wph95
2019-11-07 02:33:24 +08:00
Airflow 当初看过一些 感觉还可以
// 要是问 Django 就好了 有好几个写的很优雅的大项目( sentry taigo)非常值得推荐
Livid
2019-11-07 02:35:29 +08:00
@wph95 是啊。我就在想有没有类似 Sentry 这样规模的值得学习的项目。
Livid
2019-11-07 06:52:45 +08:00
官方文档其实有提到一个 pattern:

http://flask.palletsprojects.com/en/1.1.x/patterns/packages/
memorybox
2019-11-07 07:23:13 +08:00
一个提供 restapi 的示例,组织很简洁,有参考价值:

https://github.com/frol/flask-restplus-server-example
haoji
2019-11-07 07:32:21 +08:00
@wph95 别说一半不说了嘛,推荐一下?
phy25
2019-11-07 07:45:53 +08:00
@haoji #5 括号里的不是吗。
my8100
2019-11-07 07:55:04 +08:00
haoji
2019-11-07 08:12:51 +08:00
@phy25 😂我的错,刚睡醒眼睛没睁开。🤐
wmc
2019-11-07 08:29:03 +08:00
想起之前实习的时候读到的一篇文章,用一个很 trick 的方法来解决循环引用…… 这个设计很巧,实际上把所有的模块都做成了 init_app

https://lepture.com/en/2018/structure-of-a-flask-project
Latin
2019-11-07 08:43:46 +08:00
banxi1988
2019-11-07 08:51:05 +08:00
嗯, 搭车问一下,现在用 FastAPI 的人多吗? 一个类似 Flask 的框架.
但是比 Flask 更现代:
1. Python 3.6+
2. 完善的类型声明
3. 异步 async await 支持
4. 自带 Swagger (OpenApi)
Allianzcortex
2019-11-07 08:51:11 +08:00
@wmc 提到的 @lepture 曾经写过一个论坛 june,对里面装饰器来控制权限的用法至今还印象深刻,当然毕竟他就是 pocoo 组(Flask 核心开发)里的一员

https://gist.github.com/Allianzcortex/374f3713ac3e0b898e978b0850865bb1
cz5424
2019-11-07 09:12:13 +08:00
Orenoid
2019-11-07 09:13:37 +08:00
我是参照了这两个项目,可能都谈不上大型。
狗书的 flasky,也就是 7 楼提的那个:
https://github.com/miguelgrinberg/flasky/tree/60252375f8660d034680725db24301c594ce69e4
flask 官方 repo 里的 tutorial:
https://github.com/pallets/flask/tree/master/examples/tutorial
两者用的都是类似的项目结构,flasky 把 turorial 里的一些单文件扩展成了包,但基本架构没太大差别。
Orenoid
2019-11-07 09:16:59 +08:00
@Orenoid #14 更正,flasky 跟 7 楼的不是同一个项目,只是同一个作者
ebingtel
2019-11-07 09:17:55 +08:00
怎么开心怎么来,都是微服务了……一个 web 项目也可以 install 其他的子项目作为集成
sujin190
2019-11-07 09:25:46 +08:00
676529483
2019-11-07 09:49:52 +08:00
感觉 flask 一直都是关注度高,但开源的大型项目找不到,相反 django 就很多了。根据面试的情况归纳,基本小企业跟风用 flask 的多一些,做的也比较小型
cpj
2019-11-07 09:56:36 +08:00
老帖子里有提到过,并且我实践了 lepture 的那篇文章 ( https://lepture.com/en/2018/structure-of-a-flask-project ),感觉比较舒服
ClericPy
2019-11-07 09:58:51 +08:00
早年间用的 https://exploreflask.com/en/latest/organizing.html, 虽然也有中文版教程
不过楼主这种站长经验丰富的应该不需要这个...

用了两年 flask, 我就跳 asgi 了, starlette / fastapi 真香, falcon 也真快

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

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

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

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

© 2021 V2EX