主编推荐语
从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章 开发环境部署
- 1.1 Python的安装及配置
- 1.1.1 Python的安装
- 1.1.2 测试Python是否安装成功
- 1.2 虚拟环境的配置
- 1.3 PyCharm的安装及使用
- 1.3.1 PyCharm的下载及安装
- 1.3.2 在PyCharm中新建工程
- 1.3.3 在PyCharm中设置UTF-8编码自动创建
- 1.3.4 在PyCharm中使用已经设置好的虚拟环境
- 1.4 温故知新
- 1.5 习题
- 第2章 Flask快速上手
- 2.1 Web基础知识
- 2.2 第一个Flask Web程序
- 2.2.1 安装Flask框架
- 2.2.2 在Flask中输出Hello World
- 2.3 URL传递参数
- 2.4 URL反转
- 2.5 页面跳转和重定向
- 2.6 温故知新
- 2.7 习题
- 第3章 Jinja 2模板引擎
- 3.1 模板引擎概述及简单使用
- 3.2 向模板中传递参数
- 3.3 模板中的控制语句之if语句
- 3.4 模板中的控制语句之for语句
- 3.5 Flask的过滤器
- 3.5.1 常见过滤器
- 3.5.2 自定义过滤器
- 3.6 宏的定义及使用
- 3.6.1 宏的定义
- 3.6.2 宏的导入
- 3.6.3 include的使用
- 3.7 set和with语句的使用
- 3.8 静态文件的加载
- 3.9 模板的继承
- 3.10 温故知新
- 3.11 习题
- 第4章 Flask视图高级技术
- 4.1 app.route与add_url_rule简介
- 4.1.1 app.route的使用
- 4.1.2 add_url_rule的使用
- 4.2 Flask类视图
- 4.2.1 标准类视图
- 4.2.2 基于方法的类视图
- 4.3 Flask装饰器
- 4.3.1 装饰器的定义和基本使用
- 4.3.2 对带参数的函数使用装饰器
- 4.4 蓝图
- 4.5 温故知新
- 4.6 习题
- 第5章 Flask数据交互
- 5.1 使用Flask处理表单
- 5.1.1 使用Flask处理通用表单
- 5.1.2 使用Flask-WTF处理表单
- 5.2 使用Flask上传文件
- 5.2.1 使用Flask上传文件的简单实现
- 5.2.2 改进上传功能
- 5.3 Cookie的使用
- 5.3.1 Cookie的基本概念
- 5.3.2 Cookie的基本使用
- 5.3.3 设置Cookie的作用域
- 5.4 Session的使用
- 5.4.1 Session的基本配置
- 5.4.2 Session的基本使用
- 5.5 钩子函数的使用
- 5.6 温故知新
- 5.7 习题
- 第6章 访问数据库
- 6.1 MySQL数据库安装
- 6.1.1 下载及安装MySQL
- 6.1.2 测试MySQL是否安装成功
- 6.2 Python数据库框架MySQL-Python
- 6.2.1 MySQL-Python安装
- 6.2.2 通过Python操作数据库对象
- 6.3 通过MySQL-Python进行更新数据操作
- 6.3.1 增加数据
- 6.3.2 修改数据
- 6.3.3 删除数据
- 6.4 初识Flask-SQLAlchemy
- 6.4.1 SQLAlchemy的安装
- 6.4.2 对象-关系映射实质
- 6.4.3 为什么使用ORM
- 6.5 Flask-SQLAlchemy初始化
- 6.6 Flask-SQLAlchemy模型与表映射方法1
- 6.7 Flask-SQLAlchemy模型与表映射方法2
- 6.8 数据的增、删、改、查
- 6.8.1 数据添加
- 6.8.2 数据查询
- 6.8.3 数据修改
- 6.8.4 数据删除
- 6.9 使用Flask-SQLAlchemy创建一对一的关系表
- 6.10 使用Flask-SQLAlchemy创建一对多的关系表
- 6.11 使用Flask-SQLAlchemy创建多对多的关系表
- 6.12 Flask-Script工具的使用
- 6.12.1 安装Flask-Script并初始化
- 6.12.2 Command子类创建命令
- 6.12.3 使用Command实例的@command修饰符
- 6.12.4 使用Command实例的@option修饰符创建命令
- 6.13 Flask循环引用
- 6.14 使用Flask-Migrate实现数据库迁移
- 6.14.1 安装Flask-Migrate插件
- 6.14.2 使用Flask-Migrate的步骤
- 6.15 温故知新
- 6.16 习题
- 第7章 Memcached缓存系统
- 7.1 Memcached的安装
- 7.1.1 Memcached的基本概念
- 7.1.2 Memcached的安装
- 7.2 Memcached的基本使用
- 7.2.1 set和set_multi命令的使用
- 7.2.2 get和get_multi命令的使用
- 7.2.3 add命令的使用
- 7.2.4 replace命令的使用
- 7.2.5 append和prepend命令的使用
- 7.2.6 delete和delete_multi命令的使用
- 7.2.7 decr和incr命令的使用
- 7.3 Memcached的安全机制
- 7.4 温故知新
- 7.5 习题
- 第8章 Bootstrap的基本使用
- 8.1 Bootstrap简介
- 8.2 全局CSS样式
- 8.3 栅格系统
- 8.4 Bootstrap CSS代码
- 8.5 Bootstrap表格
- 8.5.1 基础表格
- 8.5.2 条纹状表格
- 8.5.3 带边框的表格
- 8.5.4 紧凑的表格和响应式表格
- 8.5.5 状态类
- 8.6 Bootstrap表单
- 8.6.1 垂直表单
- 8.6.2 内联表单
- 8.6.3 水平表单
- 8.6.4 支持的表单控件
- 8.7 Bootstrap按钮
- 8.8 温故知新
- 8.9 习题
- 第2篇 CMS新闻系统开发
- 第9章 CMS后台管理员登录实现
- 9.1 CMS系统基本蓝图
- 9.2 用户模型定义
- 9.2.1 建立数据库连接并创建用户模型
- 9.2.2 用户登录密码明文变密文的处理
- 9.3 管理员登录
- 9.3.1 登录页的渲染
- 9.3.2 初步实现用户的登录
- 9.3.3 优化登录-对表单进行过滤验证
- 9.3.4 优化登录-启用登录验证码
- 9.3.5 优化登录-记住我功能实现
- 9.4 限制用户访问
- 9.5 用户名注销功能实现
- 9.6 温故知新
- 9.7 习题
- 第10章 CMS后台文章模块基本功能实现
- 10.1 管理员信息展示
- 10.1.1 管理员个人详情页搭建
- 10.1.2 管理员个人详情页实现
- 10.1.3 管理员密码修改
- 10.2 文章栏目页的实现
- 10.2.1 栏目无限级分类添加进数据库
- 10.2.2 栏目的编辑功能
- 10.2.3 栏目的删除功能
- 10.3 文章的添加、修改、删除功能的实现
- 10.3.1 文章添加功能的基本实现
- 10.3.2 文章的列表显示
- 10.3.3 文章的编辑修改
- 10.3.4 文章的删除
- 10.4 温故知新
- 10.5 习题
- 第11章 CMS后台基本评论及登录日志等功能的实现
- 11.1 评论信息管理
- 11.1.1 评论信息管理页面搭建
- 11.1.2 评论的下架和发布功能实现
- 11.1.3 评论的删除功能实现
- 11.2 登录日志、操作日志等功能实现
- 11.2.1 登录日志功能的实现
- 11.2.2 登录日志批量删除功能的实现
- 11.3 温故知新
- 11.4 习题
- 第12章 基于角色的访问控制功能实现
- 12.1 权限、角色、用户的数据库设计
- 12.2 权限管理
- 12.2.1 添加权限
- 12.2.2 权限的列表显示
- 12.2.3 权限的编辑
- 12.2.4 权限的删除
- 12.3 角色管理
- 12.3.1 角色的添加
- 12.3.2 角色的列表显示
- 12.3.3 角色的编辑功能实现
- 12.3.4 角色的删除功能实现
- 12.4 基于角色的访问控制思想及实现
- 12.5 温故知新
- 12.6 习题
- 第13章 CMS网站前台功能实现
- 13.1 用户的注册和登录功能
- 13.1.1 用户注册页面的设计
- 13.1.2 用户注册功能的实现
- 13.1.3 用户登录功能的实现
- 13.2 网站首页的基本实现
- 13.3 文章详情页功能实现
- 13.4 网站404页面功能实现
- 13.5 温故知新
- 13.6 习题
- 第14章 CMS系统代码优化
- 14.1 CSRF攻击与防御
- 14.2 视图函数的一些优化
- 14.3 将验证码保存到Memcached中
- 14.4 温故知新
- 14.5 习题
- 第3篇 网站上线准备及部署
- 第15章 CMS系统性能测试与单元测试
- 15.1 慢查询SQL的检测与记录
- 15.2 Flask单元测试
- 15.3 温故知新
- 15.4 习题
- 第16章 网站部署
- 16.1 服务器部署
- 16.1.1 Gunicorn的安装配置及使用
- 16.1.2 Nginx的安装及使用
- 16.1.3 安装MySQL
- 16.2 网站部署
- 16.3 温故知新
- 16.4 习题
出版方
机械工业出版社有限公司
机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。