[每个月好书]深入理解 Flask(Pyt

[每个月好书]深入理解 Flask(Pyt

和老规矩一样,本月月考的奖品就是《深入理解Flask》两本。不知道什么是月考的同学,请补习下面文章:

每个月送书活动来袭,免费哦!

另外,为了避免每次月考都是相同的同学取得最高奖,从上次月考开始,取得过最高奖(得到过书)的同学,将不能取得最高奖,也就是说一个人只能取得一次最高奖。

规则就说到这里,下面是书籍介绍。

------------------------------------割------------------------------------------------

JackStouffr(杰克·史都华)著苏丹译ISBN-7---年7月出版定价:79.00元页16开

推荐

Flask是一种具有平缓学习曲线和庞大社区支持的微框架,利用它可以构建大规模的wb运用。学习上手Flask非常轻松,但要深入理解却其实不容易。本书从一个简单的Flask运用开始,通过解决若干实战中的问题,对一系列进阶的话题进行了探讨。书中使用MVC(模型-视图-控制器)架构对示例运用进行了转化重构,以演示如何正确地组织运用代码结构。有了可扩展性强的运用结构以后,接下来的章节使用Flask扩大为运用提供了额外的功能,包括用户登录和注册、NoSQL查询、RESTAPI、一套后台管理界面,和其他特性。然后,你会学到如何使用单元测试,保障代码延续依照正确的方式工作,避免极具风险的猜想式编程。本书还会讨论可用于部署Flask运用的诸多不同平台,和你必须斟酌的——每一个平台的优劣利弊。你会从本书中学到:■搭建Python项目环境的优秀实践■使用SQLAlchmy,以编程式对数据库进行查询■在Jinja中开发页面模板■在Flask中搭建MVC环境■探索NoSQL,什么时候应当和什么时候不应当使用,和如何使用■开发你自己的Flask扩大■使用Clry创建异步任务■使用t编写单元测试

内容提要

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

目录

第1章入门1使用Git进行版本控制1安装Git1Git基础2使用pip管理Python包4在Windows上安装pip4在MacOSX和Linux上安装Python包管理器pip5pip基本操作6用virtualnv的沙盒管理依赖7virtualnv基础7开始我们的项目8使用FlaskScript9总结10第2章使用SQLAlchmy创建数据模型11设置SQLAlchmy11Python安装包12FlaskSQLAlchmy12我们的第1个数据模型13创建usr表15CRUD16新增数据16读取数据16修改数据19删除数据19数据模型之间的关联20一对多20多对多23SQLAlchmy会话对象的方便之处25使用Almbic进行数据库迁移26总结28第3章通过模板创建视图29Jinja的语法29过滤器30注释34if语句34循环35宏36Flask特有的变量和函数37创建视图38视图函数38编写和继承模板41FlaskWTForms45WTForms基础46自定义检验器48发布评论48总结51第4章使用蓝图创建控制器52要求的构建和烧毁,和全局变量52毛病页面53使用类描写视图53方法视图55蓝图55总结57第5章进阶的运用结构58模块项目58重构代码59运用的工厂模式62总结64第6章保护运用安全65准备工作65修改用户模型65创建表单67创建视图71社交络登录76使用会话84使用FlaskLogin87用户角色90总结95第7章在Flask中使用NoSQL数据库96NoSQL数据库的种类96键值数据库97文档数据库97列式数据库98基于图的数据库关系型数据库与NoSQL的比较关系型数据库的优势NoSQL数据库的优势在甚么情况下用甚么数据库在Flask中使用MongoDB安装MongoDB配置MongoEngin定义文档CRUDNoSQL中的关联关系利用NoSQL的强大能力总结第8章构建RESTfulAPIREST是什么构建RESTfulFlaskAPIGET要求格式化输出要求中的参数POST要求身份认证PUT要求DELETE要求总结第9章使用Clry编写异步任务Clry是什么配置Clry和RabbitMQ在Clry中创建任务运行Clry任务Clry工作流监控Clry在Flowr中通过页进行监控创建一个提示运用生成每周摘要总结第10章有用的Flask扩大FlaskScriptFlaskDbugToolbarFlaskCach缓存函数和视图缓存带参数的函数缓存带有查询参数的路径使用Rdis作为缓存后端使用mmcachd作为缓存后端FlaskAsstsFlaskAdmin编写基础管理页面编写数据库管理页面增强文章管理功能编写文件系统管理页面保护FlaskAdmin的安全FlaskMail总结第11章构建你自己的扩大编写一个YouTubFlask扩大创建Python包通过Flask扩大修改响应数据总结第12章测试Flask运用什么是单元测试怎样进行测试对运用进行单元测试测试路由函数用户界面测试测试覆盖率测试驱动的开发总结第13章部署Flask运用部署在你自己的服务器上使用fabric把代码推送到服务器使用suprvisor运行你的Wb服务器GvntTornadoNginx和uWSGIApach和uWSGI部署在Hroku上使用HrokuPostgrs在Hroku中使用Clry在AWS上部署运用在AmazonElasticBanstalk上使用Flask使用AmazonRlationalDatabasSrvic在AmazonSimplQuuSrvic中使用Clry总结

精彩节摘

译者序

最近才知道,Flask在一开始居然是作为愚人节玩笑诞生的,不过后来大受好评,并成为正式项目。我在最初接触Flask的时候,它也只是作为颇具先锋气质的“单文件微框架”而在Python世界被人们口口相传。但在很短的时间内,它在PythonWb开发者中开始流行起来,Flask社区迅速壮大,为它开发的插件数量也呈爆发式增长。如今,Flask在事实上已成为轻量级PythonWb框架的代言人。不论是对Python初学者,还是对有若干年经验的Python老手,使用Flask搭建新项目都是非常有吸引力的选择。

不过即便再优秀的工具,依然很容易被用错。作者在书中也反复强调了这一点。Flask提供的是一个最小化的Wb框架,在此基础上你可以方便地使用你最喜欢的方式,添加你最得心应手的工具,构成一个专属于你和你的项目的高度定制化的强大工具套装。它不会逼你自己造轮子,由于在社区里几近应有尽有;它也不会逼你用它附赠的轮子,由于它根本就没有准备赠品。对老司机来讲,这样的框架可以最大程度地解放战斗力;对初学者来讲,又可以利用社区中大量现成的资源很快上手。这样大家便都开心了,毕竟写程序最重要的就是开心。

但问题可能也隐藏在这里面:老手可能会根据自己以往熟习的方式,把强大的战斗力释放在一些本来也许没有必要重复造轮子的地方;而新手则可能犯更多的毛病:比如使用最原始的方式或来自其他框架的方式搭建程序结构,结果当运用范围膨胀时面临窘境;又或引入了过量没必要引入的Flask扩大,致使代码难以测试和保护,稳定性下降,乃至出现冲突。另一个潜伏的问题是,庞大的社区带来的好处无庸多言,但如果大量地使用非官方库,则意味着需要承当社区开发者的水平良莠不齐所带来的风险。有个程序员朋友吐槽说好多Flask扩大有个共同点,就是文档写得比代码棒。总的来说,如何正确地应用框架给予的高度自由,结合具体项目的需求,在用不用扩大和使用甚么扩大之间做出最公道的选择,则是需要一定的经验的。而对ORM、NoSQL、云服务等,一样存在用不用、用哪一个、如何用的选择困难。

在我看来,在面向业务的开发中,深入2字的含义并不是指黑科技和奇技淫巧,而是具有预见性的解决方案选择。基于对当下项目需求的准确认知,采取最合适当前情况的不多不少的架构设计,在避免提早优化的同时对未来做好充分准备,对测试部署等流程的意义的深入理解,才是深入和进阶,也正是本书的重点所在。实际上本书超纲的地方有点多,探讨的问题已远不止Flask了。

这是我翻译的第1本书。翻译这件事果然是比较特别的体验,跟写作和编程都很不一样。翻译1整本书对像我这样的拖延症患者来讲,是个极大的挑战,由于即便每次翻译一大段,进度条也几乎没有移动的意思;但如果拖下去,它就绝对不会结束。拖到最后时刻然后突击解决的常规办法已不见效了,无论如何,经过漫长的修炼,终究还是完成了。感谢张春雨约请我翻译本书,感谢Cooki对我游手好闲的理解和支持,感谢公孙欠扁等朋友帮我解决一些英文问题。

水平所限,翻译中一定存在问题,请读者见谅。我在豆瓣、Twittr、微博等处的ID都是su27,读后若有困惑或批评意见,欢迎找我讨论、吐槽。

祝每位读者都能从本书中获益。珍重生命,我用Python!

苏丹6年6月

作者简介

JackStouffr是一名有数年Wb运用开发经验的程序员。他在两年前将自己所有的项目都切换到了Flask,目前在位于密歇根州奥本山的ApolloAmrica工作,使用Python、Flask和JavaScript编写企业内部的业务工具。Jack是开源技术的信徒与支持者,他在GitHub上发布以他所推荐的最好实践原则编写的Flask范例时,该范例立即成为线上最受欢迎的Flask代码库。Jack还曾担负由PacktPublishing出版的FlaskFramworkCookbook1书的审稿人。

译者

苏丹,来自山城重庆,毕业于北京师范大学;现豆瓣资深开发工程师,主要开发作品有豆瓣FM等;有多年Python编程实践经验;曾参与《LarningAndroid中文版》1书翻译。JackStouffr是一名有数年wb运用开发经验的程序员。他在两年前将他所有的项目都切换到了Flask。他目前在位于密歇根州奥本山的ApolloAmrica工作,使用Python、Flask和JavaScript编写企业内部业务工具。Jack是开源技术的信徒与支持者,在GitHub上发布以他所推荐的zui佳实践原则编写的Flask范例时,立即成为了线上受欢迎的Flask代码库。Jack还曾担负PacktPublishing的《FlaskFramworkCookbook》1书的审稿人。

前言

Flask是一个基于Python的Wb框架,它的设计目的是提供Wb开发所需要的最小功能子集。Flask与别的框架(尤其是采取其他编程语言的框架)的不同之处在于:它没有绑定诸如数据库查询或表单处理等功能库,和它们所组成的全部生态系统。它倾向于对这些功能的实现方式不做任何限定。

这类系统带来的主要好处是:开发者能够使用他们想用的任何方式和工具,去设计他们的运用架构。另外,对一些常见的通用功能,Flask没有以某种特定方式去实现,这意味着在Flask中,对标准库的使用会比在其他框架里多得多,这保证了通用功能的稳定性及针对其他Python程序员的可读性。由于Flask社区十分庞大,所以该社区提供的添加通用功能的方式非常多。本书的重点之一,就是介绍扩大Flask的方法,了解它们如何帮助我们避免重复造轮子。这些扩大的妙处在于,如果不需要那些额外的功能,就不用引入它们,这样我们的运用才会保持简洁、轻量。

这类系统的主要弊端是,大部分新的Flask用户不知道如何正确地计划大型运用的结构,最后弄出一大堆让人难以理解和保护的代码。所以本书的另一个重点是如何为Flask运用创建模型/视图/控制器(MVC)架构。

MVC体系在最初被发明时,主要用来设计桌面运用的用户界面。它将数据处理(modl)、交互逻辑(controllr)和用户界面(viw)隔离成三层不同的组件。

这三层组件的隔离,使得程序员不用为每一个页重新实现1遍相同的功能,而是只要重用那些代码。比如,若是没有把处理数据的代码拆分到单独的函数中,那末我们不得不在每一个页面的渲染函数里,把一样的数据库连接代码和SQL查询代码都写一遍。

本书中大量的调查研究资料及Wb运用开发中各种踩坑的第1手痛苦经验,使得本书成为目前关于Flask的最详实、实用的资料。真诚地希望你会喜欢它。本书涵盖的内容

第1章,入门,帮助读者运用Python项目的最好实践方式,并搭建一个Flask开发环境。读者会得到一个十分基础的Flask运用框架,在整本书中都会用到。第2章,使用SQLAlchmy创建数据模型,介绍如何把Python的数据库工具SQLAlchmy与Flask结合起来使用,为用户的数据库建立一套面向对象的编程接口。第3章,通过模板创建视图,讲授如何使用Flask的模板系统Jinja,在SQLAlchmy模型的支持下动态地创建HTML页面。第4章,使用蓝图创建控制器,介绍如何使用Flask的蓝图(bluprint)功能来组织视图,同时避免代码冗余。第5章,进阶的运用结构,结合在以上4章中学到的知识,详细讲授应当如何组织代码,以创建可维护性和可测试性都更好的运用结构。第6章,保护运用安全,讲授如何使用各种Flask扩大,为每一个视图添加基于权限的登录系统。第7章,在Flask中使用NoSQL数据库,讲授什么是NoSQL数据库,和在运用需要更强大的功能时,应当怎样将NoSQL数据库与之整合。第8章,构建RESTfulAPI,介绍如何通过一种安全和易用的方式,把运用数据库中的数据提供给第三方使用。第9章,使用Clry创建异步任务,讲授如何把本钱高或耗时长的任务挪到后台履行,让它们不拖慢运用。第10章,有用的Flask扩大,讲授如何利用一些广受欢迎的扩大,让运用跑得更快、增加更多的功能,和让调试变得方便、易行。第11章,构建你自己的扩大,了解Flask扩大是如何工作的,和怎样编写扩大。第12章,测试Flask运用,讲授如何通过在运用中增加单元测试和用户界面测试,以保障程序质量,减少错误代码的数量。第13章,部署Flask运用,介绍如何把已完成的运用从开发环境中拿出来,部署到线上服务器中。









































北京哪个医院治疗白癜风最好
北京治疗白癜风哪间医院疗效最好



转载请注明:http://www.guyukameng.com/php/726.html