首页>参考读物>计算机科学与技术>软件与程序设计

Python Flask Web开发入门与项目实战
作者 : 钱游 编著
出版日期 : 2019-07-04
ISBN : 978-7-111-63088-3
定价 : 99.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 372
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

本书从Flask框架的基础知识讲起,逐步深入到使用Flask进行Web应用开发实战。其中,重点介绍了使用Flask+SQLAlchemy进行服务端开发,以及使用Jinjia2模板引擎和Bootstrap进行前端页面开发,不但可以让读者系统地学习用Python微型框架开发Web应用的相关知识,而且还能对Web开发中基于角色访问权限控制的方法等相关知识有更为深入的理解。本书提供了大量的实战案例引导读者由浅入深地学习Flask Web应用开发,可以让读者的开发水平有质的提升。
本书内容通俗易懂,案例丰富,实用性强,特别适合Python Web开发的入门读者和进阶读者学习,也适合PHP程序员和Java 程序员等其他Web开发爱好者阅读。另外,本书可以作为相关培训机构的教材用书。

图书特色

Python Flask Web开发入门与项目实战
钱游 编著
书号:978-7-111-63088-3
印张:23.25(共372页)
书脊:17mm
定价:99.00元
成品尺寸:186*240
上架建议:计算机/Python

-----------------------------------------------------------------------------
广告语:
详解Flask+SQLAlchemy服务端开发及Jinja2和Bootstrap前端开发;116个实例,28个编程练习题,1个项目案例;涵盖Jinja2,视图操作,数据库访问,Memcached缓存,Bootstrap等内容


编辑推荐:
从Flask框架的基础知识讲起,逐步深入到Flask Web应用开发
重点介绍使用Flask+SQLAlchemy进行服务端开发,以及使用Jinja 2模板引擎和Bootstrap进行前端页面开发
详解116个实例、28个编程练习题、1个综合项目案例
由浅入深:从基本的开发环境配置讲起,层层深入到实际的项目案例开发
涵盖广泛:涵盖Jinja 2、视图操作、数据库访问、Memcached缓存、Bootstrap等众多内容
实例丰富:提供了116个实例和28个编程练习题带领读者上手实践
注重实战:详细介绍了一个完整的新闻系统网站开发的整个过程


本书精华内容:
第1篇 Flask基础知识
开发环境部署
Flask快速上手
Jinja2 模板引擎
Flask视图高级技术
Flask数据交互
访问数据库
Memcached缓存系统
Bootstrap的基本使用
第2篇 CMS新闻系统开发
CMS后台管理员登录实现
CMS后台文章模块基本功能实现
CMS后台基本评论及登录日志等功能的实现
基于角色的访问控制功能实现
CMS网站前台功能实现
CMS系统代码优化
第3篇 网站上线准备及部署
CMS系统性能测试与单元测试
网站部署

-------------------------------------------------------------------------------------------
作者简介

钱游 毕业于重庆大学计算机科学与技术专业。有十余年的软件开发经验,先后在西部数码成都西维数码科技有限公司和中企动力重庆分公司任职,历任Java程序员、系统架构师等职。参与开发过的项目有重庆力帆集团绩效考核系统、重庆国电睿霖电气有限公司暨物联网云平台、重庆科创职业学院官网、重庆城市职业学院官网等。长期使用Flask框架进行Web应用开发,在Web开发、微商城开发、Android移动开发等领域有丰富的实战经验。现从事移动互联网与物联网应用等领域的研究。

-------------------------------------------------------------------------------------------
内容简介:

本书从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框架展开讲解,从理论到实战,带领读者实现从零基础入门到动手实践项目开发的飞跃。书中贯穿了作者总结的大量开发经验与实践思考,对开发人员有很大的借鉴意义。
——现伯翰国际总经理(原华派科技CTO/人梯国际CTO) 王勇

这本书真是太棒了!我不得不说,即便是对于不太熟悉Python语言的读者来说,阅读本书,在作者的引领下也能快速、高效地进行Web开发。
——北京源智天下科技有限公司总经理 张增强

这是一本实用性很强的书。书中的章节经过了精心编排,可以满足不同层次读者的阅读需求。书中对基础知识和实践内容做了科学的安排,可以让读者循序渐进地掌握Flask开发的相关知识和各种开发技巧。
——神兔未来科技有限公司创始人 王静逸

本书从基本概念讲起,一步步引导读者掌握Flask框架及其应用开发。书中重点介绍了Flask开发中的模板引擎、数据交互、数据库访问和缓存系统等内容,还介绍了用Flask开发开源内容管理系统,以及基于角色访问控制等进阶内容,是一本很适合Python爱好者学习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.cmpreading.com)搜索到本书,然后单击“资料下载”按钮,即可在本书页面上找到“配书资源”下载链接,单击该链接即可下载。
本书读者对象
  本书适合熟悉Python编程语言,并具备CSS、HTML和jQuery等前端开发基础知识,且有志于通过Flask框架开发Web应用的编程爱好者、程序员和软件工程师等人员学习和参考,另外还适合Flask全栈开发培训机构的培训学员。主要如下:
想用Python快速开发网站的人员;
前端开发者想要学习后端开发技术的程序员;
熟悉Python其他框架的开发人员;
熟悉Java和PHP等编程语言而想快速开发网站的程序员;
其他Web编程爱好者;
各大院校的学生;
相关培训机构的学员。
  如果你是这几类人中的一员,那么本书就适合你。只要你能坚持学习完本书内容,并按本书设计的案例和习题进行动手实践和思考,相信当你完成了书中的所有项目案例后,就可以胜任网站开发这项工作了。
本书作者
  本书由钱游编写完成。笔者长期使用Flask技术进行Web应用开发,有十余年软件开发经验,在Web开发、微商城开发、Android移动开发等领域有丰富的实战经验。笔者现在从事移动互联网与物联网应用等领域的开发与研究。
  在本书的编写过程中,为确保内容的正确性而参阅了很多资料。在此,对本书所参考的资料或图书的原作者表示诚恳的感谢!对不能一一标明资料来源的作者表示真诚的歉意和敬意!对直接或间接为本书的出版倾注了智慧、付出了心力、提供了良好建议及帮助的所有人表示感谢!
  由于水平所限,加之写作时间仓促,书中难免存在错误和不严谨之处,恳请同行专家和读者不吝指正。读者在阅读本书的过程中若有疑问,可以发电子邮件到hzbook2017@163.com获得帮助。
  
  编者

上架指导

计算机/程序设计/Python

封底文字

本书从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开发爱好者阅读。另外,本书可以作为相关培训机构的教材用书。

图书目录

前言
本书内容导图
第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 World 25
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 下载及安装MySQL 98
6.1.2 测试MySQL是否安装成功 99
6.2 Python数据库框架MySQL-Python 100
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-SQLAlchemy 108
6.4.1 SQLAlchemy的安装 108
6.4.2 对象-关系映射实质 110
6.4.3 为什么使用ORM 111
6.5 Flask-SQLAlchemy初始化 112
6.6 Flask-SQLAlchemy模型与表映射方法1 114
6.7 Flask-SQLAlchemy模型与表映射方法2 118
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
9.3.4 优化登录-启用登录验证码 200
9.3.5 优化登录-记住我功能实现 205
9.4 限制用户访问 206
9.5 用户名注销功能实现 207
9.6 温故知新 209
9.7 习题 210
第10章 CMS后台文章模块基本功能实现 211
10.1 管理员信息展示 211
10.1.1 管理员个人详情页搭建 211
10.1.2 管理员个人详情页实现 214
10.1.3 管理员密码修改 215
10.2 文章栏目页的实现 220
10.2.1 栏目无限级分类添加进数据库 221
10.2.2 栏目的编辑功能 224
10.2.3 栏目的删除功能 233
10.3 文章的添加、修改、删除功能的实现 235
10.3.1 文章添加功能的基本实现 235
10.3.2 文章的列表显示 244
10.3.3 文章的编辑修改 247
10.3.4 文章的删除 252
10.4 温故知新 256
10.5 习题 256
第11章 CMS后台基本评论及登录日志等功能的实现 258
11.1 评论信息管理 258
11.1.1 评论信息管理页面搭建 258
11.1.2 评论的下架和发布功能实现 267
11.1.3 评论的删除功能实现 271
11.2 登录日志、操作日志等功能实现 273
11.2.1 登录日志功能的实现 273
11.2.2 登录日志批量删除功能的实现 280
11.3 温故知新 282
11.4 习题 283
第12章 基于角色的访问控制功能实现 284
12.1 权限、角色、用户的数据库设计 284
12.2 权限管理 286
12.2.1 添加权限 286
12.2.2 权限的列表显示 290
12.2.3 权限的编辑 294
12.2.4 权限的删除 295
12.3 角色管理 297
12.3.1 角色的添加 297
12.3.2 角色的列表显示 301
12.3.3 角色的编辑功能实现 303
12.3.4 角色的删除功能实现 305
12.4 基于角色的访问控制思想及实现 307
12.5 温故知新 310
12.6 习题 310
第13章 CMS网站前台功能实现 311
13.1 用户的注册和登录功能 311
13.1.1 用户注册页面的设计 311
13.1.2 用户注册功能的实现 315
13.1.3 用户登录功能的实现 318
13.2 网站首页的基本实现 324
13.3 文章详情页功能实现 326
13.4 网站404页面功能实现 329
13.5 温故知新 330
13.6 习题 331
第14章 CMS系统代码优化 332
14.1 CSRF攻击与防御 332
14.2 视图函数的一些优化 334
14.3 将验证码保存到Memcached中 336
14.4 温故知新 337
14.5 习题 337
第3篇 网站上线准备及部署
第15章 CMS系统性能测试与单元测试 340
15.1 慢查询SQL的检测与记录 340
15.2 Flask单元测试 342
15.3 温故知新 348
15.4 习题 348
第16章 网站部署 349
16.1 服务器部署 349
16.1.1 Gunicorn的安装配置及使用 350
16.1.2 Nginx的安装及使用 352
16.1.3 安装MySQL 354
16.2 网站部署 354
16.3 温故知新 356
16.4 习题 356

教学资源推荐
作者: Kenneth Barclay;John Savage
作者: 刘振安 刘燕君 孙忱
作者: Steven S.Muchnick
作者: 辛运帏 高宁 徐文拴 等编著
参考读物推荐
作者: 冯瑞涛 闫妍 著
作者: [美]J.伯顿·布朗宁(J. Burton Browning),[英]布鲁斯·萨瑟兰(Bruce Sutherland) 著
作者: Bruce Eckel
作者: (美)Heather Williamson