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

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

http://flask.palletsprojects.com/en/1.1.x/patterns/packages/
memorybox
2019 年 11 月 7 日
一个提供 restapi 的示例,组织很简洁,有参考价值:

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

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

https://gist.github.com/Allianzcortex/374f3713ac3e0b898e978b0850865bb1
cz5424
2019 年 11 月 7 日
Orenoid
2019 年 11 月 7 日
我是参照了这两个项目,可能都谈不上大型。
狗书的 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 月 7 日
@Orenoid #14 更正,flasky 跟 7 楼的不是同一个项目,只是同一个作者
ebingtel
2019 年 11 月 7 日
怎么开心怎么来,都是微服务了……一个 web 项目也可以 install 其他的子项目作为集成
sujin190
2019 年 11 月 7 日
676529483
2019 年 11 月 7 日
感觉 flask 一直都是关注度高,但开源的大型项目找不到,相反 django 就很多了。根据面试的情况归纳,基本小企业跟风用 flask 的多一些,做的也比较小型
cpj
2019 年 11 月 7 日
老帖子里有提到过,并且我实践了 lepture 的那篇文章 ( https://lepture.com/en/2018/structure-of-a-flask-project ),感觉比较舒服
ClericPy
2019 年 11 月 7 日
早年间用的 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