展开全部

主编推荐语

本书围绕Flask框架,详细地讲解了使用Flask开发网站的各项技术要点。

内容简介

全书共11章。

首先讲解了Flask项目开发中的环境搭建、项目配置、URL与视图、Jinja2模板、数据库、表单、Flask进阶、缓存系统等。

然后拓展了知识面,在项目实战中分别介绍了RESTfulAPI、邮箱验证码、Redis缓存、Celery异步任务、登录授权机制、角色权限管理、富文本编辑器、头像管理、文件上传以及Nginx、Gunicorn部署等技术要点;在WebSocket实战中讲解了Flask中使用WebSocket开发项目的全部过程。

最后讲解了Flask异步编程。

目录

  • 版权信息
  • 内容简介
  • 作者简介
  • 序 Foreword
  • 前言 Preface
  • 创作背景
  • 目标读者
  • 内容提要
  • 读者服务
  • 勘误和支持
  • 致谢
  • chapter 1 第1章 Flask前奏
  • 1.1 Flask简介
  • 1.2 环境搭建
  • 1.2.1 Python环境
  • 注意
  • 1.2.2 Flask版本
  • 1.2.3 开发软件
  • 注意
  • 注意
  • chapter 2 第2章 项目配置
  • 2.1 Debug模式、Host、Port配置
  • 2.1.1 Debug模式
  • 1. 在PyCharm Professional版中开启Debug模式
  • 2. 在非PyCharm Professional版中开启Debug模式
  • 2.1.2 设置Host和Port
  • 1. PyCharm Professional版修改Host和Port
  • 2. 非PyCharm Professional版修改Host和Port
  • 2.2 在app.config中添加配置
  • 2.2.1 使用app.config配置
  • 2.2.2 使用Python配置文件
  • chapter 3 第3章 URL与视图
  • 注意
  • 3.1 定义URL
  • 3.1.1 定义无参数的URL
  • 注意
  • 3.1.2 定义有参数的URL
  • 3.2 HTTP请求方法
  • 3.3 页面重定向
  • 3.4 构造URL
  • chapter 4 第4章 Jinja2模板
  • 4.1 模板的基本使用
  • 4.1.1 渲染模板
  • 注意
  • 4.1.2 渲染变量
  • 4.2 过滤器和测试器
  • 4.2.1 自定义过滤器
  • 4.2.2 Jinja2内置过滤器
  • 4.2.3 测试器
  • 4.3 控制语句
  • 4.3.1 if判断语句
  • 注意
  • 4.3.2 for循环语句
  • 4.4 模板结构
  • 4.4.1 宏和import语句
  • 4.4.2 模板继承
  • 4.4.3 引入模板
  • 4.5 模板环境
  • 4.5.1 模板上下文
  • 1. 自定义变量
  • 2. Jinja2内置全局上下文变量
  • 3. 上下文处理器
  • 4.5.2 全局函数
  • 1. 内置全局函数
  • 2. 自定义全局函数
  • 4.5.3 Flask模板环境
  • 1. 设置autoescape
  • 2. 添加过滤器
  • 3. 添加全局对象
  • 4. 添加测试器
  • 4.6 其他
  • 4.6.1 转义
  • 4.6.2 加载静态文件
  • 4.6.3 闪现消息
  • chapter 5 第5章 数据库
  • 5.1 准备工作
  • 5.1.1 MySQL软件
  • 5.1.2 Python操作MySQL驱动
  • 5.1.3 Flask-SQLAlchemy
  • 5.2 Flask-SQLAlchemy的基本使用
  • 5.2.1 连接MySQL
  • 5.2.2 ORM模型
  • 5.2.3 CRUD操作
  • 1. Create操作
  • 2. Read操作
  • 3. update操作
  • 4. delete操作
  • 5.3 表关系
  • 5.3.1 外键
  • 5.3.2 一对多关系
  • 1. 建立关系
  • 2. 建立双向关系
  • 3. 简化关系定义
  • 5.3.3 一对一关系
  • 5.3.4 多对多关系
  • 5.3.5 级联操作
  • 1. save-update
  • 2. delete
  • 3. delete-orphan
  • 4. merge
  • 5. expunge
  • 6. all
  • 7. 默认值
  • 5.4 ORM模型迁移
  • 5.4.1 创建迁移对象
  • 5.4.2 初始化迁移环境
  • 5.4.3 生成迁移脚本
  • 5.4.4 执行迁移脚本
  • chapter 6 第6章 表单
  • 6.1 表单验证
  • 6.1.1 表单类编写
  • 注意
  • 6.1.2 视图函数中使用表单
  • 注意
  • 6.1.3 自定义验证字段
  • 6.2 渲染表单模板
  • 注意
  • 6.3 CSRF攻击
  • 1. 防御CSRF攻击原理
  • 2. Flask-WTF防御CSRF攻击
  • chapter 7 第7章 Flask进阶
  • 7.1 类视图
  • 7.1.1 基本使用
  • 7.1.2 方法限制
  • 7.1.3 基于方法的类视图
  • 7.1.4 添加装饰器
  • 7.2 蓝图
  • 7.2.1 基本使用
  • 7.2.2 寻找模板
  • 7.2.3 寻找静态文件
  • 7.3 cookie和session
  • 7.3.1 关于cookie和session的介绍
  • 1. cookie
  • 2. session
  • 7.3.2 Flask中使用cookie和session
  • 1. Flask中操作cookie
  • 2. Flask中操作session
  • 7.4 request对象
  • 7.5 Flask信号机制
  • 7.5.1 自定义信号
  • 7.5.2 Flask内置信号
  • 1. flask. template_rendered
  • 2. flask. request_started
  • 3. flask. request_finished
  • 4. flask. got_request_exception
  • 5. flask. request_tearing_down
  • 7.6 常用钩子函数
  • 1. before_first_request
  • 2. before_request
  • 3. teardown_appcontext
  • 4. context_processor
  • 5. errorhandler
  • 7.7 上下文
  • 7.7.1 线程隔离对象
  • 7.7.2 LocalStack类
  • 7.7.3 LocalProxy类
  • chapter 8 第8章 缓存系统
  • 8.1 Memcached
  • 8.1.1 安装Memcached
  • 1. Windows系统
  • 2. Linux系统(Ubuntu)
  • 8.1.2 telnet操作Memcached
  • 1. set命令
  • 2. add命令
  • 3. get命令
  • 4. delete命令
  • 5. flush_all命令
  • 6. stats命令
  • 8.1.3 Python操作Memcached
  • 1. 建立连接
  • 2. 设置数据
  • 3. 获取数据
  • 4. 删除数据
  • 5. 自增长
  • 6. 自减少
  • 8.1.4 Memcached的安全性
  • 8.2 Redis
  • 8.2.1 Redis使用场景
  • 8.2.2 Redis和Memcached比较
  • 8.2.3 Redis在Ubuntu中的安装与使用
  • 1. 在Windows系统上安装和使用Redis
  • 2. 在Linux系统上安装Redis
  • 8.2.4 Redis操作命令
  • 1. 添加数据
  • 2. 删除数据
  • 3. 设置过期时间
  • 4. 查看过期时间
  • 5. 查看所有key
  • 6. 列表操作
  • 7. 集合操作
  • 8. 哈希(hash)操作
  • 9. 事务操作
  • 10. 发布/订阅操作
  • 8.2.5 同步数据到硬盘
  • 1. RDB策略
  • 2. AOF策略
  • 8.2.6 设置密码
  • 8.2.7 Python操作Redis
  • 1. 连接Redis
  • 2. 字符串操作
  • 3. 列表操作
  • 4. 集合操作
  • 5. 哈希操作
  • 6. 事务操作
  • chapter 9 第9章 项目实战
  • 9.1 创建项目
  • 注意
  • 注意
  • 1. pymysql
  • 2. Flask-SQLAlchemy
  • 3. cryptography
  • 4. Flask-Migrate
  • 9.1.1 config.py文件
  • 9.1.2 exts.py文件
  • 9.1.3 blueprints模块
  • 9.1.4 models模块
  • 9.2 创建用户相关模型
  • 9.2.1 创建权限和角色模型
  • 9.2.2 创建权限和角色
  • 9.2.3 创建用户模型
  • 9.2.4 创建测试用户
  • 9.2.5 创建管理员
  • 9.3 注册
  • 9.3.1 渲染注册模板
  • 9.3.2 使用Flask-Mail发送邮箱验证码
  • 1. 安装Flask-Mail
  • 2. 配置邮箱参数
  • 3. 发送邮件
  • 9.3.3 使用Flask-Caching和Redis缓存验证码
  • 9.3.4 使用Celery发送邮件
  • 9.3.5 RESTful API
  • 9.3.6 CSRF保护
  • 9.3.7 使用AJAX获取邮箱验证码
  • 9.3.8 实现注册功能
  • 9.4 登录
  • 9.5 发布帖子
  • 9.5.1 添加帖子相关模型
  • 9.5.2 初始化板块数据
  • 9.5.3 渲染发布帖子模板
  • 9.5.4 使用wangEditor富文本编辑器
  • 注意
  • 1. 引入wangEditor. js文件
  • 2. 添加生成编辑器的占位标签
  • 3. 初始化编辑器
  • 4. 设置图片上传URL
  • 9.5.5 未登录限制
  • 9.5.6 服务端实现发帖功能
  • 9.5.7 使用AJAX发布帖子
  • 9.6 首页
  • 9.6.1 生成帖子测试数据
  • 注意
  • 9.6.2 使用Flask-Paginate实现分页
  • 9.6.3 过滤帖子
  • 9.7 帖子详情
  • 9.7.1 动态加载帖子详情数据
  • 9.7.2 发布评论
  • 9.8 个人中心
  • 9.8.1 使用Flask-Avatars生成随机头像
  • 1. Gravatar
  • 2. Robohash
  • 3. 社交网站头像
  • 4. 默认头像
  • 5. Identicon哈希头像
  • 9.8.2 修改导航条上的登录状态
  • 9.8.3 根据用户显示个人中心
  • 9.8.4 修改用户信息
  • 9.9 CMS管理系统
  • 9.9.1 CMS入口
  • 9.9.2 权限管理
  • 9.9.3 员工管理页面
  • 9.9.4 添加员工
  • 9.9.5 编辑员工
  • 9.9.6 管理前台用户
  • 9.9.7 帖子管理
  • 9.9.8 评论管理
  • 9.9.9 板块管理
  • 9.10 错误处理
  • 9.11 日志
  • 9.11.1 loggers模块
  • 9.11.2 handlers模块
  • 注意
  • 9.11.3 filters模块
  • 9.11.4 formatters模块
  • 9.12 部署
  • 9.12.1 导出依赖包
  • 9.12.2 使用Git上传代码
  • 1. 初始化仓库
  • 2. 添加远程仓库地址
  • 3. 添加所有代码到缓存区
  • 4. 将代码提交到本地仓库
  • 5. 将本地仓库代码推送到Github远程仓库
  • 注意
  • 9.12.3 生产环境的配置
  • 9.12.4 安装常用软件
  • 1. 安装OpenSSH
  • 2. 安装Vim
  • 3. 安装MySQL
  • 4. 安装Redis
  • 5. 安装Python3
  • 6. 安装Git
  • 9.12.5 配置网站
  • 1. 创建新用户
  • 2. 使用Git拉取代码
  • 3. 安装Python依赖包
  • 4. 创建数据库
  • 5. 同步ORM模型到数据库中
  • 6. 创建初始数据
  • 7. 运行Celery
  • 9.12.6 使用Gunicorn部署网站
  • 9.12.7 使用Nginx部署网站
  • 9.12.8 压力测试
  • chapter 10 第10章 WebSocket实战
  • 10.1 安装相应的包
  • 10.2 创建SocketIO对象
  • 10.3 实现登录
  • 10.4 连接和取消连接
  • 10.5 获取在线用户
  • 10.6 实现单聊
  • 10.7 实现群聊
  • 10.8 部署项目
  • chapter 11 第11章 Flask异步编程
  • 11.1 asyncio标准库
  • 注意
  • 1. 事件循环
  • 2. 协程
  • 3. Task(任务)对象
  • 4. Future对象
  • 11.2 aiohttp库
  • 11.3 异步版Flask安装与异步编程性能
  • 11.3.1 安装异步版Flask
  • 11.3.2 Flask异步编程性能
  • 11.3.3 实战——异步发送HTTP请求
  • 11.3.4 使用异步SQLAlchemy
  • 注意
  • 注意
  • 11.3.5 Jinja2开启异步支持
展开全部

评分及书评

4.0
4个评分
  • 用户头像
    给这本书评了
    4.0

    如果需要用 python 搭建机器学习的 web 服务,读完前 3 章就够了

      转发
      4

    出版方

    清华大学出版社

    清华大学出版社成立于1980年6月,是由教育部主管、清华大学主办的综合出版单位。植根于“清华”这座久负盛名的高等学府,秉承清华人“自强不息,厚德载物”的人文精神,清华大学出版社在短短二十多年的时间里,迅速成长起来。清华大学出版社始终坚持弘扬科技文化产业、服务科教兴国战略的出版方向,把出版高等学校教学用书和科技图书作为主要任务,并为促进学术交流、繁荣出版事业设立了多项出版基金,逐渐形成了以出版高水平的教材和学术专著为主的鲜明特色,在教育出版领域树立了强势品牌。