Flask Web开发实战:入门、进阶与原理解析

Flask Web开发实战:入门、进阶与原理解析

Web开发技术丛书

暂无评价综合评分的显示会考虑用户真实性等多项因素,每部作品出现综合评分的时间不定。
9.287 评价豆瓣读书
免费试读
精品满减专场满200减60、满100减30、满50减15、满20减6活动详情

作品简介

这是一本面向Python程序员的,全面介绍Python Web框架Flask的书。关于本书的详细介绍、相关资源等更多信息可以访问本书的官方主页http://helloflask.com/book了解。

•国内首本Flask著作,在内容上涵盖完整的Flask Web开发学习路径,在实践上包含完整的Flask Web程序开发流程。同时兼容Python2.7和Python3.6。

•内容最新,基于Flask1.0.2版本,所有的Python库、前端框架和JavaScript库均使用最新版本。

•内容全面,除了基础知识,还包含Web API、全文搜索、国际化和本地化、第三方登录、AJAX、WebSocket、源码分析、扩展开发等实用内容。

•实战性强,包含8个示例程序,5个实战项目和1个Flask扩展。实战项目包括留言板、个人博客、图片社交网站、待办事项程序和聊天室,分别对应不同的知识点,难度递增。

•5个实战项目的Git标签经过精心设置,每个标签都对应新增的某个程序功能。

•全书所有章节均经过精心设计和编排,力求满足不同水平读者的需要,并且让读者可以循序渐进的掌握Flask开发知识和技巧。

•通过丰富的图表和代码示例讲解复杂知识点,尽量做到通俗易懂。

本书共16章,分为三部分。

第一部分:基础篇(第1~6章)

通过大量的程序实例详细介绍了Flask的所有基础知识,同时在每章的后面又提供了一些进阶技巧,供进阶读者学习。

第二部分:实战篇(第7~11章)

通过5个真实的项目案例来串接和阐释不同的知识点,难度逐渐递增。这5个案例分别为:留言板SayHello、个人博客Bluelog、图片社交网站Albumy、待办事项程序Todoism和聊天室CatChat。

第三部分:进阶篇(第12~16章)

首先介绍了Flask程序的部署流程:测试、性能优化和部署上线;然后通过一个真实的实例讲解了Flask扩展的开发,最后以源代码为切入点深入剖析了Flask的实现原理与主要工作机制。

李辉(Grey Li),Flask官方开发团队(Pallets Team)成员,知乎专栏“Hello,Flask!”作者,HelloFlask.com网站创建者。对Flask有非常深入的研究,熟悉它的源代码,有丰富的项目经验。

他热爱分享和创造,曾为Flask等多个开源项目贡献过代码,你可以在GitHub(github.com/greyli)上看到他的开源活动。在他的个人网站(greyli.com)上,你可以了解到关于他的更多信息。

作品目录

  1. 前言
  2. 第一部分 基础篇
  3. 第1章 初识Flask
  4. 1.1 搭建开发环境
  5. 1.2 Hello,Flask!
  6. 1.3 启动开发服务器
  7. 1.4 Python Shell
  8. 1.5 Flask扩展
  9. 1.6 项目配置
  10. 1.7 URL与端点
  11. 1.8 Flask命令
  12. 1.9 模板与静态文件
  13. 1.10 Flask与MVC架构
  14. 1.11 本章小结
  15. 第2章 Flask与HTTP
  16. 2.1 请求响应循环
  17. 2.2 HTTP请求
  18. 2.3 HTTP响应
  19. 2.4 Flask上下文
  20. 2.5 HTTP进阶实践
  21. 2.6 本章小结
  22. 第3章 模板
  23. 3.1 模板基本用法
  24. 3.2 模板辅助工具
  25. 3.3 模板结构组织
  26. 3.4 模板进阶实践
  27. 3.5 本章小结
  28. 第4章 表单
  29. 4.1 HTML表单
  30. 4.2 使用Flask-WTF处理表单
  31. 4.3 处理表单数据
  32. 4.4 表单进阶实践
  33. 4.5 本章小结
  34. 第5章 数据库
  35. 5.1 数据库的分类
  36. 5.2 ORM魔法
  37. 5.3 使用Flask-SQLAlchemy管理数据库
  38. 5.4 数据库操作
  39. 5.5 定义关系
  40. 5.6 更新数据库表
  41. 5.7 数据库进阶实践
  42. 5.8 本章小结
  43. 第6章 电子邮件
  44. 6.1 使用Flask-Mail发送电子邮件
  45. 6.2 使用事务邮件服务SendGrid
  46. 6.3 电子邮件进阶实践
  47. 6.4 本章小结
  48. 第二部分 实战篇
  49. 第7章 留言板
  50. 7.1 使用包组织代码
  51. 7.2 Web程序开发流程
  52. 7.3 使用Bootstrap-Flask简化页面编写
  53. 7.4 使用Flask-Moment本地化日期和时间
  54. 7.5 使用Faker生成虚拟数据
  55. 7.6 使用Flask-DebugToolbar调试程序
  56. 7.7 Flask配置的两种组织形式
  57. 7.8 本章小结
  58. 第8章 个人博客
  59. 8.1 大型项目结构
  60. 8.2 编写程序骨架
  61. 8.3 编写博客前台
  62. 8.4 初始化博客
  63. 8.5 使用Flask-Login管理用户认证
  64. 8.6 使用CSRFProtect实现CSRF保护
  65. 8.7 编写博客后台
  66. 8.8 本章小结
  67. 第9章 图片社交网站
  68. 9.1 项目组织架构
  69. 9.2 编写程序骨架
  70. 9.3 高级用户认证
  71. 9.4 基于用户角色的权限管理
  72. 9.5 使用Flask-Dropzone优化文件上传
  73. 9.6 使用Flask-Avatars处理用户头像
  74. 9.7 图片展示与管理
  75. 9.8 收藏图片
  76. 9.9 用户关注
  77. 9.10 消息提醒
  78. 9.11 用户资料与账户设置
  79. 9.12 首页与探索
  80. 9.13 使用Flask-Whooshee实现全文搜索
  81. 9.14 编写网站后台
  82. 9.15 本章小结
  83. 第10章 待办事项程序
  84. 10.1 使用JavaScript和AJAX编写单页程序
  85. 10.2 国际化与本地化
  86. 10.3 设计并编写Web API
  87. 10.4 本章小结
  88. 第11章 在线聊天室
  89. 11.1 编写程序骨架
  90. 11.2 Gravatar头像
  91. 11.3 使用Flask-SocketIO建立实时双向通信
  92. 11.4 使用Flask-OAuthlib实现第三方登录
  93. 11.5 聊天室功能增强
  94. 11.6 本章小结
  95. 第三部分 进阶篇
  96. 第12章 自动化测试
  97. 12.1 认识自动化测试
  98. 12.2 Flask测试客户端
  99. 12.3 使用unittest编写单元测试
  100. 12.4 使用Selenium进行用户界面测试
  101. 12.5 使用Coverage.py计算测试覆盖率
  102. 12.6 使用Flake8检查代码质量
  103. 12.7 本章小结
  104. 第13章 性能优化
  105. 13.1 程序性能分析
  106. 13.2 使用Flask-Caching设置缓存
  107. 13.3 使用Flask-Assets优化静态资源
  108. 13.4 本章小结
  109. 第14章 部署上线
  110. 14.1 传统部署VS云部署
  111. 14.2 基本部署流程
  112. 14.3 部署前的准备
  113. 14.4 部署到Linux服务器
  114. 14.5 部署到PythonAnywhere
  115. 14.6 部署到Heroku
  116. 14.7 下一步做什么?
  117. 14.8 本章小结
  118. 第15章 Flask扩展开发
  119. 15.1 扩展的命名
  120. 15.2 扩展项目骨架
  121. 15.3 编写扩展类
  122. 15.4 添加扩展配置
  123. 15.5 实现扩展功能
  124. 15.6 开源发布前的准备
  125. 15.7 发布到PyPI
  126. 15.8 编写良好的扩展
  127. 15.9 本章小结
  128. 第16章 Flask工作原理与机制解析
  129. 16.1 阅读Flask源码
  130. 16.2 Flask的设计理念
  131. 16.3 Flask与WSGI
  132. 16.4 Flask的工作流程与机制
  133. 16.5 本章小结
  134. 附录A Flask资源
  135. A.1 本书配套资源
  136. A.2 优秀的Flask开源程序
  137. A.3 优秀的在线资源
  138. A.4 讨论与问题求助
  139. A.5 为Flask社区贡献
载入中

热门划线

  1. 当URL规则中包含变量时,如果用户访问的URL中没有添加变量,比如/greet,那么Flask在匹配失败后会返回一个404错误响应。4 人
  2. 附注在Python中,每一个有效的Python文件(.py)都是模块。每一个包含__init__.py文件的文件夹都被视作包,包让你可以使用文件夹来组织模块。__init__.py文件通常被称作构造文件,文件可以为空,也可以用来放置包的初始化代码。当包或包内的模块被导入时,构造文件将被自动执行4 人
  3. 把程序安装在拥有公网IP的服务器上,让互联网上的所有人都可以访问是我们最后要介绍的程序部署部分的内容。如果你迫切地想把你的程序分享给朋友们,可以考虑使用ngrok(https://ngrok.com/)、Localtunnel(https://localtunnel.github.io/www/)等内网穿透/端口转发工具。3 人
  4. abort()函数前不需要使用return语句,但一旦abort()函数被调用,abort()函数之后的代码将不会被执行3 人
  5. 如果我们在没有激活相关上下文时使用这些变量,Flask就会抛出RuntimeError异常3 人
  6. 在开发时,因为安装了python-dotenv,使用flask run命令启动开发服务器时Flask会自动导入存储在.flaskenv或.env文件中的环境变量。在生产环境下,我们需要使用性能更高的生产服务器,所以不能再使用这个命令启动程序,这时我们需要手动导入环境变量。3 人
  7. 1)用户在浏览器输入URL访问某个资源。2)Flask接收用户请求并分析请求的URL。3)为这个URL找到对应的处理函数。4)执行函数并生成响应,返回给浏览器。5)浏览器接收并解析响应,将信息显示在页面中。2 人
  8. 使用“<变量名>”的形式表示。Flask处理请求时会把变量传入视图函数,所以我们可以添加参数获取这个变量值。2 人
  9. .env包含敏感信息,除非是私有项目,否则绝对不能提交到Git仓库中。当你开发一个新项目时,记得把它的名称添加到.gitignore文件中,这会告诉Git忽略这个文件2 人
  10. 3.使用PyCharm运行服务器2 人

喜欢这本书的人也喜欢