Python Flask Web开发入门与项目实战
钱游 著
- 出版社: 机械工业出版社
- ISBN:9787111630883
- 版次:1
- 商品编码:12658090
- 品牌:机工出版
- 包装:平装
- 开本:16开
- 出版时间:2019-07-01
- 用纸:胶版纸
- 页数:372
编辑推荐
适读人群 :Flask入门与进阶人员、Python Web开发人员、前后端开发程序员、Web编程爱好者、相关院校的学生、培训机构的学员
【本书特色】
1. 由浅入深:从基本开发环境配置讲起,层层深入到实际项目案例开发。
2. 实例丰富: 116个实例、28个编程练习题带领读者上手实践。
3. 注重实战:详解新闻系统网站项目案例开发的完整过程。
4. 重点突出:重点介绍Flask+SQLAlchemy服务端开发,以及Jinja 2模板引擎和Bootstrap前端页面开发。
5. 涵盖广泛:涵盖Jinja 2、视图操作、数据库访问、Memcached缓存、Bootstrap等热门Web开发技术。
【本书精华内容】
第1篇 Flask基础知识
开发环境部署
Flask快速上手
Jinja2 模板引擎
Flask视图高级技术
Flask数据交互
访问数据库
Memcached缓存系统
Bootstrap的基本使用
第2篇 CMS新闻系统开发
CMS后台管理员登录实现
CMS后台文章模块基本功能实现
CMS后台基本评论及登录日志等功能的实现
基于角色的访问控制功能实现
CMS网站前台功能实现
CMS系统代码优化
第3篇 网站上线准备及部署
CMS系统性能测试与单元测试
网站部署
内容简介
本书从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开发爱好者阅读。另外,本书可以作为相关培训机构的教材用书。
作者简介
钱游 毕业于重庆大学计算机科学与技术专业。有十余年的软件开发经验,先后在西部数码成都西维数码科技有限公司和中企动力重庆分公司任职,历任Java程序员、系统架构师等职。参与开发过的项目有重庆力帆集团绩效考核系统、重庆国电睿霖电气有限公司暨物联网云平台、重庆科创职业学院官网、重庆城市职业学院官网等。长期使用Flask框架进行Web应用开发,在Web开发、微商城开发、Android移动开发等领域有丰富的实战经验。现从事移动互联网与物联网应用等领域的研究。
精彩书评
本书围绕Flask框架展开讲解,从理论到实战,带领读者实现从零基础入门到动手实践项目开发的飞跃。书中贯穿了作者总结的大量开发经验与实践思考,对开发人员有很大的借鉴意义。
——现伯翰国际总经理(原华派科技CTO/人梯国际CTO) 王勇
这是一本实用性很强的书。书中的章节经过了精心编排,可以满足不同层次读者的阅读需求。书中对基础知识和实践内容做了科学的安排,可以让读者循序渐进地掌握Flask开发的相关知识和各种开发技巧。
——神兔未来科技有限公司创始人 王静逸
本书从基本概念讲起,一步步引导读者掌握Flask框架及其应用开发。书中重点介绍了Flask开发中的模板引擎、数据交互、数据库访问和缓存系统等内容,还介绍了用Flask开发开源内容管理系统,以及基于角色访问控制等进阶内容,是一本很适合Python爱好者学习Web开发的读物。
——北京邮电大学国际学院企业顾问团专家 段超
目录
前言
本书内容导图
第1篇 Flask基础知识
第1章 开发环境部署2
1.1 Python的安装及配置2
1.1.1 Python的安装2
1.1.2 测试Python是否安装成功7
1.2 虚拟环境的配置8
1.3 PyCharm的安装及使用11
1.3.1 PyCharm的下载及安装11
1.3.2 在PyCharm中新建工程14
1.3.3 在PyCharm中设置UTF-8编码自动创建15
1.3.4 在PyCharm中使用已经设置好的虚拟环境17
1.4 温故知新20
1.5 习题20
第2章 Flask快速上手21
2.1 Web基础知识21
2.2 第一个Flask Web程序22
2.2.1 安装Flask框架23
2.2.2 在Flask中输出Hello World25
2.3 URL传递参数28
2.4 URL反转29
2.5 页面跳转和重定向30
2.6 温故知新31
2.7 习题31
第3章 Jinja 2模板引擎33
3.1 模板引擎概述及简单使用33
3.2 向模板中传递参数35
3.3 模板中的控制语句之if语句38
3.4 模板中的控制语句之for语句40
3.5 Flask的过滤器42
3.5.1 常见过滤器42
3.5.2 自定义过滤器44
3.6 宏的定义及使用46
3.6.1 宏的定义46
3.6.2 宏的导入47
3.6.3 include的使用49
3.7 set和with语句的使用50
3.8 静态文件的加载52
3.9 模板的继承54
3.10 温故知新57
3.11 习题57
第4章 Flask视图高级技术58
4.1 app.route与add_url_rule简介58
4.1.1 app.route的使用58
4.1.2 add_url_rule的使用59
4.2 Flask类视图61
4.2.1 标准类视图61
4.2.2 基于方法的类视图63
4.3 Flask装饰器66
4.3.1 装饰器的定义和基本使用66
4.3.2 对带参数的函数使用装饰器68
4.4 蓝图71
4.5 温故知新72
4.6 习题73
第5章 Flask数据交互74
5.1 使用Flask处理表单74
5.1.1 使用Flask处理通用表单74
5.1.2 使用Flask-WTF处理表单76
5.2 使用Flask上传文件80
5.2.1 使用Flask上传文件的简单实现81
5.2.2 改进上传功能84
5.3 Cookie的使用86
5.3.1 Cookie的基本概念86
5.3.2 Cookie的基本使用87
5.3.3 设置Cookie的作用域90
5.4 Session的使用92
5.4.1 Session的基本配置92
5.4.2 Session的基本使用93
5.5 钩子函数的使用95
5.6 温故知新97
5.7 习题97
第6章 访问数据库98
6.1 MySQL数据库安装98
6.1.1 下载及安装MySQL98
6.1.2 测试MySQL是否安装成功99
6.2 Python数据库框架MySQL-Python100
6.2.1 MySQL-Python安装100
6.2.2 通过Python操作数据库对象101
6.3 通过MySQL-Python进行更新数据操作105
6.3.1 增加数据105
6.3.2 修改数据106
6.3.3 删除数据107
6.4 初识Flask-SQLAlchemy108
6.4.1 SQLAlchemy的安装108
6.4.2 对象-关系映射实质110
6.4.3 为什么使用ORM111
6.5 Flask-SQLAlchemy初始化112
6.6 Flask-SQLAlchemy模型与表映射方法1114
6.7 Flask-SQLAlchemy模型与表映射方法2118
6.8 数据的增、删、改、查119
6.8.1 数据添加119
6.8.2 数据查询121
6.8.3 数据修改122
6.8.4 数据删除123
6.9 使用Flask-SQLAlchemy创建一对一的关系表124
6.10 使用Flask-SQLAlchemy创建一对多的关系表126
6.11 使用Flask-SQLAlchemy创建多对多的关系表128
6.12 Flask-Script工具的使用130
6.12.1 安装Flask-Script并初始化130
6.12.2 Command子类创建命令131
6.12.3 使用Command实例的@command修饰符132
6.12.4 使用Command实例的@option修饰符创建命令132
6.13 Flask循环引用133
6.14 使用Flask-Migrate实现数据库迁移136
6.14.1 安装Flask-Migrate插件136
6.14.2 使用Flask-Migrate的步骤136
6.15 温故知新139
6.16 习题139
第7章 Memcached缓存系统140
7.1 Memcached的安装140
7.1.1 Memcached的基本概念140
7.1.2 Memcached的安装141
7.2 Memcached的基本使用143
7.2.1 set和set_multi命令的使用143
7.2.2 get和get_multi命令的使用144
7.2.3 add命令的使用145
7.2.4 replace命令的使用146
7.2.5 append和prepend命令的使用147
7.2.6 delete和delete_multi命令的使用148
7.2.7 decr和incr命令的使用149
7.3 Memcached的安全机制150
7.4 温故知新151
7.5 习题151
第8章 Bootstrap的基本使用152
8.1 Bootstrap简介152
8.2 全局CSS样式154
8.3 栅格系统156
8.4 Bootstrap CSS代码162
8.5 Bootstrap表格165
8.5.1 基础表格165
8.5.2 条纹状表格167
8.5.3 带边框的表格168
8.5.4 紧凑的表格和响应式表格170
8.5.5 状态类172
8.6 Bootstrap表单173
8.6.1 垂直表单174
8.6.2 内联表单175
8.6.3 水平表单180
8.6.4 支持的表单控件181
8.7 Bootstrap按钮182
8.8 温故知新185
8.9 习题186
第2篇 CMS新闻系统开发
第9章 CMS后台管理员登录实现188
9.1 CMS系统基本蓝图188
9.2 用户模型定义190
9.2.1 建立数据库连接并创建用户模型190
9.2.2 用户登录密码明文变密文的处理193
9.3 管理员登录194
9.3.1 登录页的渲染194
9.3.2 初步实现用户的登录196
9.3.3 优化登录-对表单进行过滤验证199
......
前言/序言
前言
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移动开发等领域有丰富的实战经验。笔者现在从事移动互联网与物联网应用等领域的开发与研究。
在本书的编写过程中,为确保内容的正确性而参阅了很多资料。在此,对本书所参考的资料或图书的原作者表示诚恳的感谢!对不能一一标明资料来源的作者表示真诚的歉意和敬意!对直接或间接为本书的出版倾注了智慧、付出了心力、提供了良好建议及帮助的所有人表示感谢!
由于水平所限,加之写作时间仓促,书中难免存在错误和不严谨之处,恳请同行专家和读者不吝指正。读者在阅读本书的过程中若有疑问,可以发电子邮件获得帮助。
编者