Flask 书籍

  • python测试开发项目实战-目录
  • python工具书籍下载-持续更新
  • python 3.7极速入门教程 - 目录

Flask Web Development 2nd - 2018.pdf

Flask 书籍

中文版: Flask Web开发 基于Python的Web应用开发实战 第2版

强烈推荐: https://github.com/miguelgrinberg/flasky 星级 5000多

这本书比较基础,入门是可以的,但是难以成大器,配合下面这本书就完美了。另外Flask Building Python Web Services - 2017.pdf也是不错的参考。

中文版

The New And Improved Flask - 2018.pdf

推荐 https://github.com/miguelgrinberg/microblog 星级 2000 左右

Flask 书籍

中文在线版本 http://www.pythondoc.com/flask-mega-tutorial/ https://github.com/Microndgt/The-Flask-Mega-Tutorial 英文在线

深入理解Flask - 2016.pdf

Flask 书籍

Flask 是在Python 用户中最为流行的Web 开发框架。《深入理解 Flask》从一个简单的Flask 项目入手,由浅入深地探讨了一系列实战问题,包括如何使用SQLAlchemy 和Jinja 等工具进行Web 开发;如何正确地设计扩展性强的Flask 应用架构和搭建MVC 环境;对于各种NoSQL 数据库的特性,何时应该、何时不应该及如何使用它们;通过使用Flask 扩展快速实现用户的身份系统、RESTful API、NoSQL查询、后台管理等功能;如何创建自己的扩展;使用Celery 编写异步任务,使用pytest 进行单元测试等;最后介绍了如何部署上线,包括使用自己搭建的服务器或使用各种云服务,以及如何权衡和选择这些不同的解决方案。

英文版本:Mastering Flask - 2015.pdf

Python高效开发实战Django、Tornado、Flask、Twisted - 2016.pdf

Learning Flask Framework - 2015.pdf

Flask 书籍

Instant Flask Web Development - 2013.pdf

head first flask - 2016.pdf

Flask Building Python Web Services - 2017.pdf

Flask 书籍

Flask Blueprints - 2015.pdf

Flask 书籍

Building Web Applications with Flask - 2015.pdf

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

https://github.com/greyli/helloflask 中文版

更多flask及python web开发新书:https://itbooks.pipipan.com/dir/18113597-29505146-756dbb/

官方教程

Flaskr Flaskr: Intro to Flask, Test-Driven Development (TDD), and JavaScript

中文文档

英文文档

Developing a Single Page App with Flask and Vue.js

参考资料

  • 讨论 qq群144081101 567351477
  • 本文最新版本地址
  • 本文涉及的python测试开发库 谢谢点赞!
  • 本文相关海量书籍下载
  • 道家技术-手相手诊看相中医等钉钉群21734177 qq群:391441566 184175668 338228106 看手相、面相、舌相、抽签、体质识别。服务费50元每人次起。请联系钉钉或者微信pythontesting
  • 接口自动化性能测试线上培训大纲
  • Monitoring

关于这本书的最新动态、相关资源和购买链接,请访问本书主页查看。欢迎访问本书的豆瓣图书页面撰写书评或短评。

为什么说这是一本更好的Flask书

现有的几本Flask书包含下面这些问题:内容较旧,不论是Flask本身,还是其他扩展和Python库。

包含误区或不完善的代码实现,比如在使用SQLAlchemy建立数据库关系时,出于性能的考虑,一般不会把加载关系记录的方式设为dynamic。

示例程序过于简单,比如甚至没有删除帖子的功能。

内容比较单一,仅包含入门知识。

相对的,这本《Flask Web开发实战:入门、进阶与原理解析》当然避免了以上问题:Flask使用最新的1.0.2版本,使用Pipenv管理示例程序依赖,所有扩展和其他Python库均使用最新版本。不仅如此,项目中使用的前端框架Bootstrap(4.1)、Materialize(1.0)和Semantic-UI(2.3)也均使用最新版本。

纠正了常见误区,并在相应位置给出提示。

包含多个不同复杂程度的示例程序,尽可能的让程序贴近真实使用情况。

如副书名所示,这本书除了基本的入门知识,还包含进阶内容和原理解析。看到书名,你的第一想法也许是:为什么书名和Miguel Grinberg的书那么像?起书名并非由我一人决定,而且技术书的起名没有多大自由度,你不仅要考虑加入合适的关键词,还要考虑到如何凸显书的主要特点。“Flask Web开发”的确是简洁又突出重点的好名字,我们在后面添加了“实战”,用来着重体现这本书的最大特点。

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

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

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

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

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

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

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

面向的读者群

本书面向的读者群如下:了解Python基本语法,想要自己动手做网站的编程爱好者

熟悉Python,想要从事Python Web开发的后端工程师、运维工程师和爬虫工程师

想要从Django等其他Python Web框架转向Flask的Python工程师

本书不包含对Python的基础知识介绍,所以读者需要事先对Python基本语法有一定的了解。另外,Web开发不可避免的会涉及到HTML、CSS和JavaScript知识,如果你不熟悉这些,可以通过MDN提供的Web开发入门教程学习,简单了解即可。

3个推荐语这本书内容翔实,推荐给想要系统学习Flask的人。不要漏掉书中的小知识点哦。

—— Flask开发团队(Pallets)核心维护者 Hsiaoming Yang(lepture)这本《Flask Web开发实战》非常有趣,是一本能够给读者带来帮助的书,作为一个Flask框架的爱好者,我也很期待这本书的出版。

—— 《Redis设计与实现》作者 黄健宏(huangz)Grey Li is a really helpful contributor to Flask and the Python community. He is making it easier for more people to learn and use Flask.

—— Flask开发团队(Pallets)核心维护者 David Lord(davidism)

8个示例程序、5个项目实例、1个扩展

包含丰富的实例是这本书的最大特点,这也是为什么要把“实战”放到书名里。

书的第一部分(基础篇)共6章,每一章都包含一个示例程序,示例程序包含每章涉及的大部分代码,你可以实际运行程序来查看效果。以第5章《数据库》为例,除了一个简单的演示“增删查改”的笔记程序外,示例程序中还包含“一对多”、“多对一”、“一对一”、“多对多”、“一对多+双向关系”、“一对多+双向关系+使用backref简化关系定义”、“级联设置”“数据库时间监听函数”等15(2 * 7 + 1)个模型类定义和2个事件监听函数(两种实现方式)。第1~6章以及第13章的示例程序统一包含在helloflask仓库中的demos目录下。

第二部分(实战篇)共5章,每一章都通过一个程序来组织起所有的知识点。这5个程序分别为:留言板SayHello、个人博客Bluelog、图片社交网站Albumy、待办事项程序Todoism和聊天室CatChat。你可以在下面的《章节概括》部分查看每一个示例程序所涉及的知识点。

这几个项目的源码和在线Demo链接均可以在本书主页看到。和《Flask Web开发》中的做法类似,这部分的示例程序均使用Git标签来组织不同阶段的代码,方便你签出相应的版本或是进行对比。

第三部分(进阶篇)第13章《性能优化》通过两个实例程序来介绍使用Flask-Caching和Flask-Assets对Flask程序添加缓存和进行静态资源优化的前后变化对比。第15章《Flask扩展开发》则通过一个简单的为页面中添加社交分享组件的Flask-Share扩展来完整介绍从创建Git仓库到使用twine将包上传到PyPI的完整扩展开发流程。

你可以在文章《Flask Web开发实战》中的示例程序们一文中了解这些程序的具体信息,文章中提供了大量程序界面截图。

满足80%的读者提议

在文章《写一本Flask书》中,很多知友通过评论给出了希望看到的内容和建议。我做了简单的收集和处理,粗略的浏览,大概有80%的读者提议得到了满足。

内容丰富,大约700页

这本书在介绍基础知识外,还引入了许多进阶技巧。第一部分从第2章开始每一章都包含一个《进阶实践》章节,其中包含一些常见的技巧,比如“如何安全的跳转回上一页”,“使用WTForms表单内置的中文错误消息”,“数据库事件监听”等,具体可以参考下面的《目录》部分。

另外,这本书还介绍了一些被其他Flask书忽略,但又非常实用的知识,比如实现AJAX时Flask和JavaScript交互数据的方式、通过AJAX实现的资料弹窗、在弹窗中实现动态的关注收藏按钮、通过AJAX实现简单的单页程序、实时双向通讯、国际化和本地化、全文搜索、第三方登录、Markdown支持、代码语法高亮、头像裁剪、设置缓存等。

本书会尽量提供多个技术选型,比如第6章《电子邮件》中,除了介绍使用Flask-Mail实现发送电子邮件,还介绍了使用事务邮件服务SendGrid发送电子邮件的两种方式;在第14章《部署上线》中,我介绍了一个基本的服务器初始化过程,包括安装基本的而库、设置SSH密钥登录、设置防火墙等部署,接着才是Gunicorn、Nginx和Supervisor的使用介绍。除了Linux部署,还介绍了使用PythonAnywhere和Heroku的程序部署流程。

尽管如此,在多次修改的过程中,我还是删掉了大量内容(近8万字约240页)。这些内容或是偏离主题,或是有了更好的替代内容,删掉这些内容一方面可以保证书的内容贴近主题,同时也可以避免成书太厚。因为内容丰富,所以最终完稿共980页,成书大概会在700页左右。对于这些删减掉的内容,我会抽取有价值的内容并进行完善后陆续发布在专栏中。文章目录索引在《Flask Web开发实战》番外文章索引。

关于作者

我是李辉,一个Python开发者,Flask开发团队(Pallets Team)的成员。我在GitHub上维护了几个Flask扩展项目,也尝试为多个Flask相关项目贡献代码和处理Issue;除了知乎,我偶尔会在Stack Overflow上回答一些Flask相关的问题。

章节概括

下面是本书的章节概括,简单的介绍了各章的内容,你可以通过下面的《目录》部分来了解详细的内容。本书由四部分组成,分别为基本篇、实战篇、进阶篇和附录,共16章。本书的章节安排经过精心的设计,力求让读者可以循序渐进的掌握Flask开发基础知识和技巧。

第一部分:基础篇 介绍Flask开发相关的基础知识。第1章:搭建开发环境,编写一个最小的Flask程序并运行它,了解Flask基本知识。

第2章:介绍了Flask与HTTP的交互方式以及相关的Flask功能。

第3章:Jinja2模板的使用和技巧。

第4章:Web表单的创建和表单数据的验证。

第5章:在Flask程序中使用数据库进行CRUD操作,各类数据库关系的建立。

第6章:在Flask程序中发送电子邮件的几种方式,使用Flask-Mail通过SMTP服务器发送,或是通过事务邮件服务SendGrid(SMTP和Web API两种方式)。

第二部分:实战篇 通过几个示例程序来介绍Flask开发中的各类功能实现和技巧。第7章:通过一个简单的留言板程序SayHello介绍Web开发基本流程和基本的项目管理方式,对第一部分的基础知识进行简单的回顾,最后还介绍了Faker、Flask-Moment和Flask-DebugToolbar的使用。

第8章 :通过个人博客程序Bluelog介绍CRUD操作、用户认证(Flask-Login)、文章评论和回复、后台管理等功能,其中还包括网站主题更换,渲染导航链接等小技巧。

第9章:通过图片社交程序Albumy介绍用户注册和认证、用户权限管理、图片上传(Flask-Dropzone)与处理(Pillow)、用户头像、复杂的数据库关系、复杂的数据库查询、全文搜索(Flask-Whooshee)等内容。

第10章:通过待办事项程序Todoism介绍单页应用、国际化与本地化(Flask-Babel)、Web API、OAuth服务器端实现等内容。

第11章:通过聊天室程序CatChat介绍Websocket应用(实时双向通讯,通过Flask-SocketIO实现)、OAuth客户端实现(第三方登录,通过Flask-OAuthlib实现)、Markdown支持(markdown)、代码语法高亮(pygments)等内容。

第三部分:进阶篇 介绍Flask程序的部署流程:测试、性能优化、部署上线;介绍Flask开发的进阶话题:Flask扩展开发和Flask源码与机制分析。第12章:介绍Flask程序的自动化测试,包括单元测试和UI测试的编写、计算测试覆盖率和代码质量检查。

第13章:对Flask程序进行性能优化的主要措施,包括函数与数据库查询的性能分析、缓存的使用(Flask-Caching)、静态文件优化(Flask-Assets)。

第14章:介绍部署Flask程序前的准备,以及部署到Linux服务器和云平台Heroku、PythonAnywhere的完整流程。

第15章:通过扩展Flask-Share来介绍编写Flask扩展的完整流程,从创建项目到上传到PyPI。

第16章:介绍了Flask的一些设计理念,包括底层WSGI的相关实现,并对各个主要功能点进行源码分析。

目录