超棒的Flask
Flask相关优秀资源的精选列表。
Flask是一个用Python编写的轻量级WSGI Web应用框架。
目录
第三方扩展
管理
- Flask-Admin - 功能强大的管理面板,提供基于模型的数据管理用户界面。
API
RESTful API支持
- Eve - 为人类设计的RESTful API框架。
- Flask-Classful - 增加对基于类的视图的支持,用于设置RESTful API路由端点。
- Flask-MongoRest - 基于MongoEngine的RESTful API框架。
- Flask-RESTful - 快速构建RESTful API。
RESTful API + Swagger/OpenAPI文档支持
- APIFlask - 集成marshmallow用于验证和序列化,以及生成带有Swagger UI的OpenAPI。
- Connexion - 基于OpenAPI的开源REST框架,构建在Flask之上。
- Flasgger - OpenAPI和Swagger UI。从Flasgger模型、marshmallow模型、字典或YAML文件构建API。
- Flask-Rebar - 结合Flask、marshmallow和OpenAPI,用于构建强大的REST服务。
- Flask-RESTX - Flask-RESTPlus的社区驱动分支,使用Flask轻松构建和文档化RESTful API。
- flask-smorest - marshmallow官方的Flask REST集成。使用marshmallow模型进行请求/响应验证和序列化,并生成带有Swagger UI的OpenAPI。
Swagger/OpenAPI文档支持
- SAFRS: Python OpenAPI & JSON:API Framework - SAFRS是SQLAlchemy Flask-RESTful Swagger的缩写,旨在帮助开发人员为SQLAlchemy数据库对象和关系创建自文档化的JSON API。
认证
基本认证和基于会话的认证(用于HTML端点)
- Flask-HTTPAuth - 认证。
- Flask-Login - 账户管理和认证。
- Flask Principal - 授权。
- Flask-Security-Too - 账户管理、认证、授权。
- Flask-Session - 会话管理。
- Flask-SimpleLogin - 认证。
- Flask-User - 账户管理、认证、授权。
想了解Flask-User和Flask-Security的区别吗?请查看Flask-User的FAQ。
基于JWT的认证(用于JSON端点)
- Flask-JWT - 基本的JWT支持。
- Flask-JWT-Extended - 高级JWT支持。
- Flask-JWT-Router - 为Flask应用添加授权路由。
- Flask-Praetorian - Flask API的认证和授权。
OAuth
- Authlib - 用于构建OAuth和OpenID客户端和服务器的库。
- Authomatic - 框架无关的Python Web应用库,简化了通过OAuth和OpenID进行用户认证和授权。
- Flask-Dance - 通过OAuthLib提供OAuth支持。
缓存
- Flask-Caching - 缓存支持。
数据验证和序列化
- Flask-Marshmallow - Flask和marshmallow(一个对象序列化/反序列化库)的轻量级集成层,为marshmallow添加了额外功能。
- Flask-Pydantic - Pydantic支持。
数据库
ORM
- Flask-Peewee - 支持Peewee,一个ORM和数据库迁移工具。
- Flask-Pony - 支持Pony ORM。
- Flask-SQLAlchemy - 支持SQLAlchemy,一个SQL工具包和ORM。
ODM
- Flask-MongoEngine - 连接Flask和MongoEngine,用于操作MongoDB。
- Flask-PyMongo - 连接Flask和PyMongo,用于操作MongoDB。
迁移
-
Flask-Alembic - 围绕Flask-SQLAlchemy数据库的可配置Alembic迁移环境,用于处理数据库迁移。
-
Flask-DB - Flask CLI扩展,帮助您迁移、删除、创建和填充SQL数据库。
-
Flask-Migrate - 通过Alembic处理SQLAlchemy数据库迁移。
想了解Alembic、Flask-Alembic、Flask-Migrate和Flask-DB之间的区别吗?请查看Flask-DB常见问题解答中的这个条目。
其他工具
- Flask-Excel - 使用pyexcel读取、操作和写入不同的Excel格式:csv、ods、xls、xlsx和xlsm。
开发者工具
调试
- Flask-DebugToolbar - Django调试工具栏的Flask移植版。
- Flask-Profiler - 端点分析器/性能分析器。
数据固定装置
- Flask-Fixtures - 从JSON或YAML创建数据库固定装置。
- Mixer - 对象生成工具。
日志记录
- Rollbar - 使用Rollbar进行Flask错误日志记录。
监控
- Airbrake - Airbrake Flask集成。
- Elastic APM Agent - Elastic APM Flask集成。
- Flask Monitoring Dashboard - 用于自动监控Flask Web服务的仪表板。
- Sentry Python SDK - Sentry SDK Flask集成。
追踪
- Flask-OpenTracing - OpenTracing instrumentation。
测试
- Flask-Testing - 单元测试扩展。
- Pytest-Flask - 用于测试Flask应用程序的Pytest支持。
电子邮件
- Flask-Mail - 提供简单的电子邮件发送功能。
- Flask-Mailman -
django.mail
的Flask移植版。 - Flask-Mail-SendGrid - 基于Flask-Mail提供使用SendGrid发送电子邮件的简单功能。
表单
- Flask-WTF - 集成Flask与WTForms(同时提供CSRF保护)。
全文搜索
- flask-msearch - 全文搜索。
- Flask-WhooshAlchemy3 - 为Flask-SQLAlchemy提供全文搜索和Whoosh索引功能。
- SQLAlchemy-Searchable - 为SQLAlchemy模型提供全文搜索功能。
安全
- Flask-Argon2 - 提供argon2哈希实用工具。
- Flask-Bcrypt - 提供bcrypt哈希实用工具。
- Flask-CORS - 跨域资源共享(CORS)处理。
- Flask-SeaSurf - 跨站请求伪造(CSRF)防护。
- Flask-Talisman - HTTPS和安全头。
任务队列
- Celery - 最常用的Python库,用于处理异步任务和调度。
- Dramatiq - 快速可靠的Celery替代品。
- Flask-RQ - RQ(Redis队列)集成。
- Huey - 基于Redis的任务队列,旨在提供一个简单但灵活的任务执行框架。
实用工具
- Flask-Babel - 支持国际化(i18n)和本地化(l10n)。
- Flask-File-Upload - 轻松上传文件。
- Flask-FlatPages - 基于文本文件提供静态平面页面。
- Frozen-Flask - 将Flask应用程序冻结为一组静态文件。
- Flask-GraphQL - GraphQL支持。
- Flask-Injector - 添加依赖注入支持。
- Flask-Limiter - 为Flask路由添加速率限制功能。
- Flask-Moment - 为Jinja2模板提供Moment.js日期和时间格式化助手。
- Flask-Paginate - 分页支持。
- Flask-Reactize - 在Flask应用程序后面隐藏React的Node.js开发后端。
- Flask-Shell2HTTP - Python subprocess API的RESTful/HTTP包装器,可以将任何命令行工具转换为RESTful API服务。
- Flask-Sitemap - 网站地图生成。
- Flask-SocketIO - Socket.IO集成。
- Flask-SSE - 使用flask进行流式传输。
资源
官方资源
外部资源
- Full Stack Python的Flask页面 - 解释Flask哲学并提供其他资源和教程的链接。
- Miguel Grinberg的博客 - 多个Flask专题教程。
- Nick Janetakis的博客 - Flask技巧、窍门和教程。
- Patrick Kennedy的博客 - 多个关于学习Python Web应用开发和Flask的教程。
- RealPython - 许多高质量的Flask教程。
- TestDriven.io - 最新的Flask教程。
社区
- Discord - Discord上的Pallets项目社区(使用
#get-help
频道获取Flask支持)。 - IRC频道 - 在FreeNode的
#pocoo
IRC频道与其他Flask用户聊天。 - 邮件列表 - Flask和Pallets项目的一般讨论(
flask@python.org
)。 - Reddit - Flask子版块。
- Stack Overflow - 标记为
flask
的问题。 - Twitter - 关于更新、安全修复等的官方公告。
会议
- FlaskCon - 社区驱动的Flask活动,旨在让全球的演讲者和参与者参与与Flask相关的技术和布道会议。
- PyConWeb - 涵盖Django、Tornado、Flask、API框架、AsyncIO、网络、前端、JavaScript和Web安全。
- Flask Conf Brazil - 面向Flask开发者和用户的会议。
- PyCon US - 使用和开发开源Python编程语言的社区最大年度聚会。
- PyCon Australia - 为Python编程社区组织的全国性会议。
- Euro Python - 欧洲最大的Python会议。
- PyCon - 全球所有PyCon的完整列表。
线下聚会
- Flask - 20个国家的40多个小组。
- Python Web开发 - 81个国家的600多个小组。
- Python - 100个国家的2,400多个小组。
播客
- TalkPython - 领先的Python播客,有几集专门讲Flask。
- Podcast Init - 一个偶尔会邀请Flask嘉宾的流行Python播客。
- Python Bytes - 另一个时不时讨论Flask的Python播客。
- Full Stack Python最佳Python播客页面 - 活跃的Python专题播客列表。
教程
- Flask大型教程 - 面向Python初学者和中级开发者的全面教程,教授使用Flask框架进行Web开发。
- Flaskr TDD - Flask、测试驱动开发(TDD)和JavaScript入门。
- 用Python和Flask制作Web应用! - 从底层开始创建Python网站。
课程
- 使用Python和Flask开发Web应用 - 本课程专注于通过构建和测试Web应用来教授Flask的基础知识,采用测试驱动开发(TDD)方法。
- 使用Python、Flask和Docker进行测试驱动开发 - 学习如何构建、测试和部署由Python、Flask和Docker驱动的生产级微服务。
- 使用Flask、React和Docker进行身份验证 - 学习如何为Flask和React微服务添加身份验证!
- 将Flask和React微服务部署到AWS ECS - 学习如何将由Flask、React和Docker驱动的微服务部署到Amazon ECS。
- 用Flask构建SAAS应用 - 学习使用Flask和Docker构建Web应用。
- 全栈基础 - 使用Python构建数据驱动的Web应用。
- 设计RESTful API - 构建和保护后端API服务器。
书籍
- Flask Web开发 - 通过逐步开发一个真实世界的项目,从头开始学习框架。
- Real Python - 通过示例学习Python编程。
- 探索Flask - 开发Flask Web应用的最佳实践和模式。
视频
托管
PaaS
(平台即服务)
- Heroku
- PythonAnywhere
- AWS Elastic Beanstalk
- Google App Engine
- Microsoft Azure App Service
- Divio
- Render
IaaS
(基础设施即服务)
无服务器
框架:
计算:
项目
样板
- cookiecutter-flask - 包含Bootstrap 4、使用webpack进行资源打包和压缩、初始模板以及注册/认证功能。
- Cookiecutter Flask Skeleton - Cookiecutter的Flask启动项目。
- Flask-AppBuilder - 简单快速的应用开发框架,包含详细的安全功能、自动为模型生成CRUD操作、Google图表等众多功能。
- flask-base - 包含SQLAlchemy、Redis、用户认证等功能。
- Flask-Bootstrap - 集成了SQLAlchemy、认证和Bootstrap前端。
- flask-htmx-boilerplate - Python Flask应用的样板模板,使用HTMX和Tailwind CSS。
- uwsgi-nginx-flask-docker - 在单个容器中运行Flask应用的Docker镜像,包含uWSGI和Nginx。
- React-Redux-Flask - Flask JWT后端和React/Redux前端(使用Material UI)的样板应用。
- MVC Flask - 使用此扩展可在Flask应用中使用MVC模式。
开源项目
- ActorCloud - 开源物联网平台。
- Airflow
- Busy Beaver - Chicago Python社区的Slack交互机器人。
- FlaskBB - 经典论坛软件。
- Indico - 功能丰富的活动管理系统,由CERN开发。
- Quokka CMS - 世界上最愉快的内容管理系统。
- PythonBuddy - 在线Python编辑器,具有实时语法检查和执行功能。
- Redash - 旨在让任何人,无论技术水平如何,都能利用大数据和小数据的力量。
- SkyLines - 实时跟踪、飞行数据库和竞赛框架。
- Security Monkey - 监控AWS、GCP、OpenStack和GitHub组织的资产及其随时间的变化。
- SecureDrop - 开源举报提交系统,媒体组织可用于安全接收文件并与匿名源进行通信。
- SimpleLogin - 使用电子邮件别名保护您的在线身份。
- sr.ht - Git托管服务(另请参阅为什么我选择Flask构建sr.ht的微服务)。
- Timesketch - 协作取证时间线分析。
注意:本项目由**TestDriven.io**提供支持。请通过购买我们的Flask课程来支持这个开源项目。了解如何构建、测试和部署由Docker、Flask和React驱动的微服务!