致谢
仅凭我一个人是无法完成这本书的。家人、同事、老友,以及写书过程中认识的新朋友都给了我很大的帮助。
我要感谢Brendan Kohler,他对本书做了详尽的技术审校,并针对第14章提供了宝贵的建议。还要感谢David Baumgold、Todd Brunhoff、Cecil Rock和Matthew Hugues,他们在本书撰写的不同阶段审阅了书稿,并对涵盖哪些内容和章节规划给予了建设性建议。
本书示例代码的编写花费了我大量精力。我很感激Daniel Hofmann的帮助,他对这个应用做了彻底的代码审查,并指出了很多可改进之处。还要感谢我十几岁的儿子Dylan Grinberg,他暂时抵御住了Minecraft游戏的强大吸引力,用几周时间帮助我在不同平台上测试这些代码。
O'Reilly有个极好的项目,名为Early Release(提早发布),可以让迫不及待的读者在图书撰写过程中就进行阅读。一些抢先阅读的读者不仅阅读了本书,还加入了讨论,分享了他们阅读本书的体验,这为本书的改进做出了极大贡献。在这些读者中,我要特别感谢Sundeep Gupta、Dan Caron、Brian Wisti和Cody Scott对本书所做的贡献。
O'Reilly Media的工作人员始终陪伴着我。首先我要特别感谢本书的编辑Meghan Blanchette,她从我们见面的第一天起,就给予我无尽的支持、建议和协助。她把我写作第一本书的过程变成了美好的回忆。
最后,请让我对Flask社区表示由衷的感谢。
第2版增加的感谢
我要感谢本书第2版的编辑Ally MacDonald,以及Susan Conant、Rachel Roumeliotis和整个O'Reilly Media团队对我一如既往的支持。
这一版的几位技术审阅者尽职尽责,提出了诸多改进建议,让我有了新的领悟。感谢Lorena Mesa、Diane Chen和Jesse Smith的反馈和建议。还要感谢我儿子Dylan Grinberg的帮助,他小心翼翼地测试了全部代码示例。