全部主题 | Blog | 时讯 | @fullstackpython | Facebook | 源码
Flask
Flask 是一个 Python Web 框架,它在设计实现时奉行 小核心且易于扩展的哲学。
为什么说 Flask Web 框架是一个不错的选择?
人们认为 Flask 相比 Django 更加的 Pythonic, 因为 Flask Web 应用的代码在多数情况下都会更加清晰明确。 由于创建和运行一个简单的 Flask 应用只需很少的样板文件, Flask 对于初学者来说,更易于上手。
例如,下面是一个 Flask 版本的 "hello world" 应用(它的 Django 版本将需要更多的代码量):
- from flask import Flask
- app = Flask(__name__)
- @app.route('/')
- def hello_world():
- return 'Hello World!'
- if __name__ == '__main__':
- app.run()
Flask 是距 Django 好几年后才开发的,因此它能从 Django 框架的发展历程中学到很多东西。Jökull Sólberg 在他的这篇文章 从 Flask 换回到 Django 经历中就很好地阐明了这个问题。
Flask 是对Web 框架 概念的一种实现。在 Web 开发 那一章你可以了解框架的各部分组件是如何协同工作的,或者到 总目录 页去查看其它所有主题。
Flask 资源
由 Miguel Grinberg 写的这套教程是学习如何使用这个 Web 框架的绝佳入门资源。 每一篇文章都只关注一个主题,并且都是建立在之前文章的基础上。这个系列共分 18 个部分: #1 Hello World、 #2 模板、 #3 表单、 #4 数据库、 #5 用户登录、 #6 简介页与用户标识、 #7 单元测试、 #8 关注者、联系人及好友、 #9 分页、 #10 全文检索、 #11 邮件支持、 #12 改良、 #13 日期和时间、 #14 国际化和本地化、 #15 Ajax #16 调试、测试及性能分析 #17 在 Linux 上部署 及 #18 在 Heroku 云上部署。 Miguel 还编写了 O'Reilly Flask Web 开发 这本书,这也是本相当不错的学习资料。
如果你想一份趣味教程来学习 Flask 和 WebSocket 知识,看下我的博文 使用 Reveal.js、 Python 和 WebSocket 创建一个可交互的演示文稿。参照那个教程来 创建一个管理界面, 这是第 1 部分、 第 2 部分 和 第 3 部分 向你展示了如何使用表单和 SQLAlchemy。当然这个应用还有一个开源的 GitHub 代码库,并同步博客 对每一次的文章发布都作了 tag。
这个 简单的 Flask 应用使用 Twilio Voice 实现三方之间的语言通话功能。这是我发布在 Twilio 博客上的关于 Python 和 Flask 的介绍文章,非常有趣。
Flask 扩展中心 这份精心整理的列表上都是些 Flask 最佳扩展。如果你需要的一些功能没有包含在核心框架中,你可以先到这里找找看。
探索 Flask 是一本公共图书,它之前是 Kickstarter 上的一个项目,在进行开源之前大约收费了一年多时间。该书讲解了创建 Flask 应用的最佳实践和模式。
如何组织我的 Flask 应用 演示了这位开发者对其 Flask 应用的各部件和构架是如何进行组织的。
将打电话功能添加到你的 Web 应用中 是一个重量级的 Flask 教程,里面附带了创建一个可以拨打电话和接听来电的 Web 应用的全部所需代码。
Jeff Knupp 写了一篇不错的文章叫 创建一个 Flask 应用。
Plank & Whittle 这个博客上有两篇文章,一篇叫 如何打包一个 Flask Web 应用,另一篇叫 将 Flask 应用打包成一个 Debian 包,适合已创建了一个应用并想进行部署的你看。
这份 Flask 教程 是另一个不错的框架入门资料。
创建你自己的类似 Yo 的极简消息应用 示范了一个非常基本的 Flask 应用,使用 Nitrous.io 来创建项目,并用 Twilio 来提供短信功能。
这个博客系列文章 "其实并不神奇",讲解了 Flask 中无处不在的 @app.route 这个装饰器到底是如何运作的。这个系列分为两部分, 第 1 部分 和 第 2 部分。
通过示例学 Flask: 第 1 部分 对 Flask 工程如何进行初始设置进行了讲解。 第 2 部分 讲解了如何使用 PostgreSQL、 SQLAlchemy 和 Alembic。 第 3 部分 描述了如何使用 BeautifulSoup 和 NLTK 进行文本处理。第 4 部分 展示了如何用 Flask 和 Redis 来创建一个任务队列。
使用 Python 和 Twilio 生成品牌的彩信优惠券 是我写的一篇 Flask 教程,讲述如何创建一个 Web 应用并通过彩信发送品牌条码优惠券。这篇文章对应用开发的每个步骤(从一片空目录开始直到创建一个可以部署到 Heroku 的应用)都作了一一的讲解。
如何组织一个大型的 Flask 应用 涉及的这个主题,是你一旦要开始在你的 Flask 应用 中增加重要的功能时就会很快碰到的。
Flask 模板 针对大型项目,展示了如何组织你的多个 blueprints。
Flask 实现视频流功能 是 Miguel Grinberg 的另一篇精彩教程,内容涉及视频流。
一行代码并能减少 Flask 60% 的页面加载时间 是篇重要的文章,阐明了优化 Flask 模板的缓存大小在某些情况下能显著地增加性能。
利用 Python 的 Flask 和 Nose 来对你的 Twilio 应用进行单元测试 涉及如何将 Twilio API 集成到 Flask 应用中,以及如何用 nose 进行功能测试。
Flask 文档上有一些小例子,演示了如果在 独立的 WSGI 容器 中部署 Flask。
在 Flask 中如何确认邮件地址 很好地示范了如何将邮件地址与用户的登录信息进行匹配。
如果你还不是很了解为什么在生产环境中 部署后,必须要将
DEBUG
设置成False
的话,你应该读读这篇文章 Patreon 是如何被黑掉的。
开源 Flask 示例项目
交互式的演示文稿 将 Flask 与 Reveal.js 及短信结合,创建了一个观众能够投票决定事件进程的演示文稿。它的代码在 MIT 许可下完全开源,它使用 Flask-SocketIO 和 Flask-WTF 项目来支持投票和表单输入功能。
Skylines 是一个开源的航班信息追踪系统,它用 Flask 实现。可以在 这里看到这个应用的运行效果。
Microblog 这个开源项目是和 Miguel Grinberg 的 O'Reilly Flask 那本书配套的。
Flaskr TDD 遵循了官方的 Flask 教程, 并在项目中增加了测试驱动开发和 JQuery。
这是一个 笔记记录应用,这是它在 Gist 上的源代码。
Bean Counter 是一个开源的 Flask 应用,用于追踪咖啡的相关信息。
FlaskBB 是一个用 Flask 实现的论坛应用。
psdash 这个应用是用 Flask 和 psutils 创建的,它能显示运行它的计算机的相关信息。
Flask 项目模板
Flask App Engine 模板 ,采用这个模板设置,你的 Flask 应用就能在 Google App Engine 上运行。
Flask Foundation 是一个 Flask 项目模板。它还有一个 相应的网站,讲解了这个模板中包含了哪些扩展。
Cookiecutter Flask 这个项目模板使用了 Cookiecutter。
Flask-Boilerplate 是另一个项目模板,它提供了注册、登录和密码重置等功能。
Sunscrapers 公司提供了这个 采用了 SQLAlchemy、 py.test 和 Celery 的 Flask 样板项目 完全符合 Flask 项目的结构要求。
Flask 框架学习清单
在你的本地开发机上 安装 Flask 。
根据上面的 “Flask 资源”节里列出的那 18 个 Flask 教程,依次练习。
在 Flask 扩展中心 查找你的项目所需的扩展。
在学习和研究完那 18 个 Flask 教程以及下面列出的开源示例应用后,开始编写你自己的 Flask 应用 。
查看 部署那一章,将你的 Flask 项目发布上网上。
接下来你想学习哪些与 Web 开发相关的主题呢?
我已经创建了一个 Python Web 应用,那我如何部署呢?
赞助商
如果你要找一本循序渐进的 Flask 教程,我推荐你 看看 Real Python.
邮件获取更新
目录
1. 简介学习编程为什么用 Python?Python 2 还是 3?企业 PythonPython CommunityBest Python Podcasts最佳 Python 资源最佳 Python 视频2. 开发环境VimEmacs3. 核心语言生成器推导式4. Web 开发Web 框架DjangoFlaskBottlePyramidMorepath其它 Web 框架Web 设计级联样式表 (CSS)JavaScriptWebSockets模板引擎Web 应用安全静态网站生成器Jinja25. 数据关系型数据库NoSQL 数据存储对象关系映射器PostgreSQLMySQLSQLite6. Web APIsAPI 集成API 的创建Twilio7. 部署服务器平台即服务(PaaS)操作系统Web 服务器WSGI 服务器源码控制应用程序依赖静态内容任务队列配置管理持续集成日志监控Web 分析Docker缓存微服务DevOpsNginxApache HTTP 服务器CaddyGreen Unicorn (Gunicorn)UbuntuPelicanLektorMkDocs8. 测试单元测试集成测试代码度量调试9. MetaBotsChange LogFuture DirectionsAbout the AuthorSQLAlchemyPeewee …或者显示全部目录内容.
Flask
重要的更新内容会通过 Twitter 账号@fullstackpython发布。
需要更加详细的教程吗?请看 《The Full Stack Python Guide to Deployments》。
Chapters
1. 简介2. 开发环境3. 核心语言4. Web 开发 » Flask 5. 数据6. Web APIs7. 部署8. 测试9. Meta …or view the full table of contents.
This site is based on Matt Makai's project Full Stack Python, thanks for his excellent work!
此网站由 @haiiiiiyun 和 开源爱好者们 共同维护。 若发现错误或想贡献,请访问: Github fullstackpython.cn 项目
![](https://www.linkedin.com/in/matthewmakai?authType=name&authToken=thoI)