Flask从入门到进阶

Flask从入门到进阶

Python Web开发工程化实践

暂无评价综合评分的显示会考虑用户真实性等多项因素,每部作品出现综合评分的时间不定。

作品简介

这是一本为各水平层次的Python Web开发者提供完整Flask Web开发知识体系的书,由Flask官方团队成员撰写,获得Flask之父Armin Ronacher的高度认可和推荐。

本书内容系统全面,从Flask的基础知识到完整的Flask项目实战,从Flask Web API开发到Flask应用的性能优化,从Flask项目的生产部署到Flask的源码解析,本书提供了完整的Python Web工程化学习路径。

本书实战案例丰富,基础篇的大部分章节都针对相应的知识点提供了完整可运行的示例程序,实战篇则通过2个较为完整的Flask项目讲解了Flask项目的组织方式和技巧,以及Flask开发中各类功能的实现方法和技巧。

内容紧跟技术发展,书中的代码和示例程序均基于Flask新发布的稳定版3.x编写,书中涉及的其他Python包和前端库也全部采用当前的新版本,确保本书在未来较长一段时间内仍可保持先进性和实用性。

本书共14章,分为三部分:

基础篇(第1–7章):通过丰富的示例讲解了Flask的核心基础与进阶技巧,为后续学习打下坚实基础。

实战篇(第8–10章):通过两个完整项目案例,将Flask的知识点融会贯通,带领读者完成从0到1的开发过程。

进阶篇(第11–14章):涵盖基于Flask与APIFlask的Web API开发、性能优化与生产部署,并深入剖析Flask的源码实现与核心机制。

本书不仅提供系统的知识讲解和完整的项目源码,还提供丰富的在线资源和活跃的读者社群。只要你了解Python的基本语法,无论你是零基础Web开发爱好者,还是想从事Python Web开发的后端工程师、运维工程师、爬虫工程师、数据科学工程师等,抑或是想要从Django、FastAPI等其他Python Web框架转向Flask的Python工程师,都能从中获益匪浅。掌握本书,你将不再畏惧任何复杂的Web开发需求,在AI时代构筑自己坚不可摧的核心竞争力。

李辉(Grey Li),Flask与APIFlask的维护者,Flask官方开发团队(Pallets Projects)成员,HelloFlask与代码厨房社区(CodeKitchen Community)的创建者,微软Python方向最有价值专家(Microsoft MVP)。现就职于戴尔中国卓越研发集团,担任首席软件工程师。

他对Flask有非常深入的研究,熟悉其源代码,拥有丰富的项目实践经验。热衷于开源软件的应用与推广,曾为包括Flask在内的多个开源项目贡献大量代码,并多次在PyCon China、PyCon US、COSCUP、COSCon、CommunityOverCode等技术大会上发表演讲。

你可以在GitHub(github.com/greyli)上查看他的开源项目,或访问他的个人网站(greyli.com)了解更多信息。

作品目录

  1. Prologue 序
  2. 前言 Preface
  3. 基础篇
  4. Chapter 1 第1章 初识Flask
  5. 1.1 搭建开发环境
  6. 1.2 Hello,Flask!
  7. 1.3 开发服务器
  8. 1.4 Flask Shell
  9. 1.5 Flask扩展
  10. 1.6 项目配置
  11. 1.7 视图、URL和端点
  12. 1.8 Flask命令
  13. 1.9 模板与静态文件
  14. 1.10 获取和使用示例程序
  15. 1.11 本章小结
  16. Chapter 2 第2章 Flask与HTTP
  17. 2.1 请求-响应循环
  18. 2.2 HTTP请求
  19. 2.3 HTTP响应
  20. 2.4 Flask上下文
  21. 2.5 Web安全防范
  22. 2.6 小实践:重定向到上一个页面
  23. 2.7 本章小结
  24. Chapter 3 第3章 模板与静态文件
  25. 3.1 模板的基本用法
  26. 3.2 模板的辅助工具
  27. 3.3 模板的组织结构
  28. 3.4 静态文件
  29. 3.5 消息闪现
  30. 3.6 自定义错误页面
  31. 3.7 使用Bootstrap-Flask简化模板编写
  32. 3.8 本章小结
  33. Chapter 4 第4章 表单
  34. 4.1 HTML表单
  35. 4.2 使用WTForms和Flask-WTF处理表单
  36. 4.3 处理表单数据
  37. 4.4 自定义验证器
  38. 4.5 使用Bootstrap-Flask快速渲染表单
  39. 4.6 本章小结
  40. Chapter 5 第5章 数据库
  41. 5.1 数据库分类
  42. 5.2 ORM魔法
  43. 5.3 安装和初始化Flask-SQLAlchemy
  44. 5.4 连接数据库服务器
  45. 5.5 定义SQLAlchemy模型类
  46. 5.6 创建数据库表
  47. 5.7 数据库操作
  48. 5.8 配置Python Shell上下文
  49. 5.9 定义关系
  50. 5.10 更新数据库表与数据迁移
  51. 5.11 数据库高级实践
  52. 5.12 使用Faker生成虚拟数据
  53. 5.13 小练习:编写一个记事本程序
  54. 5.14 本章小结
  55. Chapter 6 第6章 自动化测试
  56. 6.1 了解自动化测试
  57. 6.2 Flask测试客户端
  58. 6.3 使用unittest编写单元测试
  59. 6.4 测试Flask命令
  60. 6.5 使用coverage.py计算测试覆盖率
  61. 6.6 使用Ruff优化代码风格
  62. 6.7 类型标注
  63. 6.8 本章小结
  64. Chapter 7 第7章 常用Flask开发技巧
  65. 7.1 使用Flask-Mailman发送电子邮件
  66. 7.2 使用AJAX发送异步请求
  67. 7.3 使用Flask-WTF上传文件
  68. 7.4 使用Flask-CKEditor集成富文本编辑器
  69. 7.5 使用CSRFProtect实现CSRF保护
  70. 7.6 使用Flask-DebugToolbar调试程序
  71. 7.7 本章小结
  72. 实战篇
  73. Chapter 8 第8章 项目组织
  74. 8.1 基本项目组织技巧
  75. 8.2 使用蓝本模块化程序
  76. 8.3 组织程序配置
  77. 8.4 使用工厂函数创建程序实例
  78. 8.5 组织测试
  79. 8.6 项目组织架构
  80. 8.7 本章小结
  81. Chapter 9 第9章 程序实例:个人博客
  82. 9.1 Web程序开发流程
  83. 9.2 编写程序框架
  84. 9.3 渲染导航链接
  85. 9.4 实现Flash消息分类
  86. 9.5 日期和时间的本地化
  87. 9.6 编写博客前台
  88. 9.7 文章评论与回复
  89. 9.8 网站主题切换
  90. 9.9 创建管理员用户
  91. 9.10 使用Flask-Login管理用户认证
  92. 9.11 编写博客管理后台
  93. 9.12 本章小结
  94. Chapter 10 第10章 程序实例:图片社交网站
  95. 10.1 程序功能与数据库设计
  96. 10.2 用户注册与验证
  97. 10.3 基于用户角色的权限管理
  98. 10.4 使用Flask-Dropzone优化文件上传功能
  99. 10.5 使用Flask-Avatars处理用户头像
  100. 10.6 图片展示与管理
  101. 10.7 图片收藏
  102. 10.8 用户关注
  103. 10.9 消息提醒
  104. 10.10 用户资料与账户设置
  105. 10.11 首页与探索
  106. 10.12 使用Flask-Whooshee实现全文搜索
  107. 10.13 编写网站后台
  108. 10.14 使用Selenium进行用户界面测试
  109. 10.15 本章小结
  110. 进阶篇
  111. Chapter 11 第11章 Web API开发
  112. 11.1 认识Web API
  113. 11.2 资源URL和版本设计
  114. 11.3 使用HTTP方法描述操作
  115. 11.4 使用JSON传输资源
  116. 11.5 使用Flask-CORS添加CORS支持
  117. 11.6 使用APIFlask开发Web API
  118. 11.7 测试Web API
  119. 11.8 本章小结
  120. Chapter 12 第12章 性能分析与优化
  121. 12.1 程序性能分析
  122. 12.2 使用Flask-Caching配置缓存
  123. 12.3 使用Flask-Assets优化静态资源
  124. 12.4 本章小结
  125. Chapter 13 第13章 部署上线
  126. 13.1 部署方式
  127. 13.2 基本部署流程
  128. 13.3 部署前的准备
  129. 13.4 传统部署:部署到Linux服务器
  130. 13.5 容器部署:使用Docker进行部署
  131. 13.6 下一步该做什么
  132. 13.7 本章小结
  133. Chapter 14 第14章 Flask工作原理与机制解析
  134. 14.1 阅读Flask源码
  135. 14.2 Flask的设计理念
  136. 14.3 Flask与WSGI
  137. 14.4 Flask的工作流程与机制
  138. 14.5 本章小结
  139. 附录 Appendix Flask资源