本书从Flask框架的基础知识讲起,逐步深入到使用Flask进行Web应用开发实战。其中,重点介绍了使用Flask SQLAlchemy进行服务端开发,以及使用Jinja 2模板引擎和Bootstrap进行前端页面开发的方法,不但可以让读者系统地学习用Python微型框架开发Web应用的相关知识,而且还能对Web开发中基于角色访问权限控制的方法等相关知识有更为深入的理解。本书提供了大量的实战案例引导读者由浅入深地学习Flask Web应用开发,可以让读者的开发水平有质的提升。
本书共16章,分为3篇。第1篇为Flask基础知识,介绍了Flask开发的环境部署及入门知识,内容涵盖了Flask程序的基本结构、Jinja 2模板、Web表单、SQLAlchemy管理数据库、装饰器的定义和使用、Memcached缓存技术等;第2篇为CMS新闻系统开发,介绍了数据库设计、数据库迁移、无限级分类的实现、登录日志、角色的访问权限控制等内容;第3篇为网站上线准备及部署,介绍了Web程序上线部署前必须要进行的单元测试、性能优化和环境部署等内容。
本书内容通俗易懂,案例丰富,实用性强,特别适合Python Web开发的入门读者和进阶读者学习,也适合PHP程序员和Java程序员等其他Web开发爱好者阅读。另外,本书可以作为相关培训机构的教材用书。
Flask诞生于2010年,是Armin ronacher用Python语言基于Werkzeug工具箱编写的轻量级Web开发框架。时至今日,使用Flask开发Web等应用程序的人越来越多,使用Flask微框架也越来越流行。
目前,Python的就业前景还是非常好的。国内Python人才需求呈大规模上升,薪资水平也水涨船高。在Linux运维、Python Web网站工程师、Python自动化测试、数据分析和人工智能等诸多领域,对Python人才的需求非常旺盛。目前,业内几乎所有大中型互联网企业都在使用Python,如Youtube、Dropbox、BT、Quora(类似于中国的知乎)、豆瓣、知乎、Google、Yahoo、Facebook、NASA、百度、腾讯、汽车之家和美团等。很多知名企业的网站,诸如豆瓣、知乎和拉勾网等都是用Python语言开发的。熟练掌握Python语言与Python框架Flask,入职名企妥妥的。
Flask的优势
Web网站发展至今,特别是服务器端,涉及的知识非常广泛,这对程序员的要求会越来越高。如果采用成熟、稳健的框架,那么一些诸如安全性、数据流控制等类型的基础性工作都可以让框架来处理,而程序开发人员则可以把更多的精力放在具体业务逻辑功能的实现和优化上。
使用Flask框架的优势有以下几点:
可以大大降低开发难度,提高开发效率,让快速、高效的Web开发成为可能。
可以带来系统稳定性和可扩展性的提升。Flask自由、灵活、可扩展性强、第三方库的选择面广,用第三方库可以实现自己想要的功能,而且很多第三方库还可以定制与裁减。
对于初学者来说简单易学,入门门槛很低,即便没有多少Web开发经验,也能很快做出网站,大大节约了初学者的学习成本。
综上所述,Flask是一个用Python语言编写的Web微框架,可以让开发人员快速开发各种Web应用。
笔者在长期的Flask框架使用过程中有切身体会:使用该框架进行Web开发,的确省时、省事、省力。比如表单数据的校验、CSRF攻击与防御等提供了相应模块,直接拿过来就可以使用。默认情况下,Flask不包含数据库抽象层和表单验证等功能。然而Flask支持用扩展来给应用添加这些功能,就如同是用Flask实现的一样。众多的扩展提供了数据库集成、表单验证、上传处理和各种各样的开放认证技术等功能。为了把这些心得体会分享给广大的Web开发人员,笔者编写了本书。本书主要介绍了如何基于Python的微框架Flask进行Web开发,内容安排从易到难,讲解由浅入深、循序渐进,可以帮助读者快速掌握Flask Web开发的大部分常用技术点。
本书特色
由浅入深:本书从基本的开发环境配置讲起,层层深入到实际项目案例开发,切实为读者朋友提供了高效学习Flask框架的好方法。
内容全面:本书涵盖Flask开发的方方面面,包括Jinja 2、视图操作、数据库访问、Memcached缓存和Bootstrap等众多内容。
实例众多:本书注重讲练结合,讲解的实例多达116个,还提供了28个配套编程练习题,让读者朋友可以通过大量的动手实践迅速掌握Flask开发。
注重实战:本书第2、3篇结合新闻系统网站开发,将一个完整的动态网站项目划分为典型的工作任务,让读者在完成工作任务的过程中学习新技术和新技能。
本书内容
第1篇 Flask基础知识(第1~8章)
本篇主要介绍了Flask开发环境的部署与配置,并重点介绍了Flask开发所需要掌握的基础知识,涵盖Flask程序基本结构、Jinja 2模板引擎、高级视图、Flask数据交互、数据库访问和Memcached缓存系统等内容。
第2篇 CMS新闻系统开发(第9~14章)
本篇主要介绍了CMS系统后台管理员登录实现、CMS系统后台文章模块基本功能实现、CMS后台基本评论及登录日志等功能实现、基于角色的访问控制功能实现、CMS网站前台功能实现和CMS系统代码优化等相关内容,涉及数据库设计、数据库迁移、无限级分类、登录日志、角色访问权限控制等相关知识点。
第3篇 网站上线准备(第15、16章)
本篇主要介绍了Web程序上线部署前必须要进行的单元测试、性能优化和环境部署等相关内容。
配套资源获取方式
本书涉及的源代码文件等配套资料需要读者自行下载。请在华章公司的网站www.hzbook.com上搜索到本书,然后单击资料下载按钮,即可在本书页面上找到配书资源下载链接,单击该链接即可下载。
本书读者对象
本书适合熟悉Python编程语言,并具备CSS、HTML和jQuery等前端开发基础知识,且有志于通过Flask框架开发Web应用的编程爱好者、程序员和软件工程师等人员学习和参考,另外还适合Flask全栈开发培训机构的培训学员。主要如下:
想用Python快速开发网站的人员;
前端开发者想要学习后端开发技术的程序员;
熟悉Python其他框架的开发人员;
熟悉Java和PHP等编程语言而想快速开发网站的程序员;
其他Web编程爱好者;
各大院校的学生;
相关培训机构的学员。
如果你是这几类人中的一员,那么本书就适合你。只要你能坚持学习完本书内容,并按本书设计的案例和习题进行动手实践和思考,相信当你完成了书中的所有项目案例后,就可以胜任网站开发这项工作了。
本书作者
本书由钱游编写完成。笔者长期使用Flask技术进行Web应用开发,有十余年软件开发经验,在Web开发、微商城开发、Android移动开发等领域有丰富的实战经验。笔者现在从事移动互联网与物联网应用等领域的开发与研究。
在本书的编写过程中,为确保内容的正确性而参阅了很多资料。在此,对本书所参考的资料或图书的原作者表示诚恳的感谢!对不能一一标明资料来源的作者表示真诚的歉意和敬意!对直接或间接为本书的出版倾注了智慧、付出了心力、提供了良好建议及帮助的所有人表示感谢!
由于水平所限,加之写作时间仓促,书中难免存在错误和不严谨之处,恳请同行专家和读者不吝指正。读者在阅读本书的过程中若有疑问,可以发电子邮件获得帮助。
编著者