Flask Web开发:基于Python的Web应用开发实战(第2版)

Book description

作为Python Web开发的微框架,Flask独树一帜。它不会强迫开发者遵循预置的开发规范,为开发者提供了自由度和创意空间。

本书是Web开发入门经典教材“狗书”新版,针对Python 3全面修订。作者采用讲解与实例相结合的方法,不仅介绍了Flask安装、使用等基础知识和Flask核心功能,还带领读者从头开始一步步开发了社交博客应用Flasky,涵盖开发、测试到部署的Web开发全过程。

  • 学习Flask应用的基本结构,编写示例应用。
  • 使用必备组件,包括模板、数据库、Web表单和电子邮件支持。
  • 使用包和模块构建可伸缩的大型应用。
  • 实现用户身份认证、用户角色和用户资料。
  • 在博客网站中重用模板、分页显示列表以及使用富文本。
  • 使用基于Flask的REST式API,在手机、平板电脑和其他第三方客户端上实现可用功能。
  • 学习运行单元测试以及提升性能。
  • 将Web应用部署到生产服务器。

Table of contents

  1. 封面
  2. 扉页
  3. 版权页
  4. 版权声明
  5. O’Reilly Media, Inc.介绍
  6. 目录 (1/2)
  7. 目录 (2/2)
  8. 前言
    1. 面向的读者群
    2. 本书结构
    3. 如何使用示例代码
    4. 使用代码示例
    5. 排版约定
    6. O’Reilly Safari
    7. 联系我们
    8. 致谢
      1. 第2版增加的感谢
    9. 电子书
  9. 第一部分 Flask简介
    1. 第1章 安装
      1. 1.1 创建应用目录
      2. 1.2 虚拟环境
      3. 1.3 在Python 3中创建虚拟环境
      4. 1.4 在Python 2中创建虚拟环境
      5. 1.5 使用虚拟环境
      6. 1.6 使用pip安装Python包
    2. 第2章 应用的基本结构
      1. 2.1 初始化
      2. 2.2 路由和视图函数
      3. 2.3 一个完整的应用
      4. 2.4 Web开发服务器
      5. 2.5 动态路由
      6. 2.6 调试模式
      7. 2.7 命令行选项
      8. 2.8 请求–响应循环
        1. 2.8.1 应用和请求上下文
        2. 2.8.2 请求分派
        3. 2.8.3 请求对象
        4. 2.8.4 请求钩子
        5. 2.8.5 响应
      9. 2.9 Flask扩展
    3. 第3章 模板
      1. 3.1 Jinja2模板引擎
        1. 3.1.1 渲染模板
        2. 3.1.2 变量
        3. 3.1.3 控制结构
      2. 3.2 使用Flask-Bootstrap集成Bootstrap
      3. 3.3 自定义错误页面
      4. 3.4 链接
      5. 3.5 静态文件
      6. 3.6 使用Flask-Moment本地化日期和时间
    4. 第4章 Web表单
      1. 4.1 配置
      2. 4.2 表单类
      3. 4.3 把表单渲染成HTML
      4. 4.4 在视图函数中处理表单
      5. 4.5 重定向和用户会话
      6. 4.6 闪现消息
    5. 第5章 数据库
      1. 5.1 SQL数据库
      2. 5.2 NoSQL数据库
      3. 5.3 使用SQL还是NoSQL
      4. 5.4 Python数据库框架
      5. 5.5 使用Flask-SQLAlchemy管理数据库
      6. 5.6 定义模型
      7. 5.7 关系
      8. 5.8 数据库操作
        1. 5.8.1 创建表
        2. 5.8.2 插入行
        3. 5.8.3 修改行
        4. 5.8.4 删除行
        5. 5.8.5 查询行
      9. 5.9 在视图函数中操作数据库
      10. 5.10 集成Python shell
      11. 5.11 使用Flask-Migrate实现数据库迁移
        1. 5.11.1 创建迁移仓库
        2. 5.11.2 创建迁移脚本
        3. 5.11.3 更新数据库
        4. 5.11.4 添加几个迁移
    6. 第6章 电子邮件
      1. 使用Flask-Mail提供电子邮件支持
        1. 在Python shell中发送电子邮件
        2. 在应用中集成电子邮件发送功能
        3. 异步发送电子邮件
    7. 第7章 大型应用的结构
      1. 7.1 项目结构
      2. 7.2 配置选项
      3. 7.3 应用包
        1. 7.3.1 使用应用工厂函数
        2. 7.3.2 在蓝本中实现应用功能
      4. 7.4 应用脚本
      5. 7.5 需求文件
      6. 7.6 单元测试
      7. 7.7 创建数据库
      8. 7.8 运行应用
  10. 第二部分 实例:社交博客应用
    1. 第8章 用户身份验证
      1. 8.1 Flask的身份验证扩展
      2. 8.2 密码安全性
      3. 8.3 创建身份验证蓝本
      4. 8.4 使用Flask-Login验证用户身份 (1/2)
      5. 8.4 使用Flask-Login验证用户身份 (2/2)
        1. 8.4.1 准备用于登录的用户模型
        2. 8.4.2 保护路由
        3. 8.4.3 添加登录表单
        4. 8.4.4 登入用户
        5. 8.4.5 登出用户
        6. 8.4.6 理解Flask-Login的运作方式
        7. 8.4.7 登录测试
      6. 8.5 注册新用户
        1. 8.5.1 添加用户注册表单
        2. 8.5.2 注册新用户
      7. 8.6 确认账户
        1. 8.6.1 使用itsdangerous生成确认令牌
        2. 8.6.2 发送确认邮件
      8. 8.7 管理账户
    2. 第9章 用户角色
      1. 9.1 角色在数据库中的表示
      2. 9.2 赋予角色
      3. 9.3 检验角色
    3. 第10章 用户资料
      1. 10.1 资料信息
      2. 10.2 用户资料页面
      3. 10.3 资料编辑器
        1. 10.3.1 用户级资料编辑器
        2. 10.3.2 管理员级资料编辑器
      4. 10.4 用户头像
    4. 第11章 博客文章
      1. 11.1 提交和显示博客文章
      2. 11.2 在资料页中显示博客文章
      3. 11.3 分页显示长博客文章列表
        1. 11.3.1 创建虚拟博客文章数据
        2. 11.3.2 在页面中渲染数据
        3. 11.3.3 添加分页导航
      4. 11.4 使用Markdown和Flask-PageDown支持富文本文章
        1. 11.4.1 使用Flask-PageDown
        2. 11.4.2 在服务器端处理富文本
      5. 11.5 博客文章的固定链接
      6. 11.6 博客文章编辑器
    5. 第12章 关注者
      1. 12.1 再论数据库关系
        1. 12.1.1 多对多关系
        2. 12.1.2 自引用关系
        3. 12.1.3 高级多对多关系
      2. 12.2 在资料页面中显示关注者
      3. 12.3 使用数据库联结查询所关注用户的文章
      4. 12.4 在首页显示所关注用户的文章
    6. 第13章 用户评论
      1. 13.1 评论在数据库中的表示
      2. 13.2 提交和显示评论
      3. 13.3 管理评论
    7. 第14章 应用编程接口
      1. 14.1 REST简介
        1. 14.1.1 资源就是一切
        2. 14.1.2 请求方法
        3. 14.1.3 请求和响应主体
        4. 14.1.4 版本
      2. 14.2 使用Flask实现REST式Web服务 (1/3)
      3. 14.2 使用Flask实现REST式Web服务 (2/3)
      4. 14.2 使用Flask实现REST式Web服务 (3/3)
        1. 14.2.1 创建API蓝本
        2. 14.2.2 错误处理
        3. 14.2.3 使用Flask-HTTPAuth验证用户身份
        4. 14.2.4 基于令牌的身份验证
        5. 14.2.5 资源和JSON的序列化转换
        6. 14.2.6 实现资源的各个端点
        7. 14.2.7 分页大型资源集合
        8. 14.2.8 使用HTTPie测试Web服务
  11. 第三部分 成功在望
    1. 第15章 测试
      1. 15.1 获取代码覆盖度报告
      2. 15.2 Flask测试客户端
        1. 15.2.1 测试Web应用
        2. 15.2.2 测试Web服务
      3. 15.3 使用Selenium进行端到端测试
      4. 15.4 值得测试吗
    2. 第16章 性能
      1. 16.1 在日志中记录影响性能的缓慢数据库查询
      2. 16.2 分析源码
    3. 第17章 部署
      1. 17.1 部署流程
      2. 17.2 把生产环境中的错误写入日志
      3. 17.3 云部署
      4. 17.4 Heroku平台
        1. 17.4.1 准备工作
        2. 17.4.2 使用heroku local测试
        3. 17.4.3 执行git push命令部署
        4. 17.4.4 升级后重新部署
      5. 17.5 Docker容器 (1/3)
      6. 17.5 Docker容器 (2/3)
      7. 17.5 Docker容器 (3/3)
        1. 17.5.1 安装Docker
        2. 17.5.2 构建容器映像
        3. 17.5.3 运行容器
        4. 17.5.4 审查运行中的容器
        5. 17.5.5 把容器映像推送到外部注册处
        6. 17.5.6 使用外部数据库
        7. 17.5.7 使用Docker Compose编排容器
        8. 17.5.8 清理旧容器和映像
        9. 17.5.9 在生产环境中使用Docker
      8. 17.6 传统部署方式
        1. 17.6.1 架设服务器
        2. 17.6.2 导入环境变量
        3. 17.6.3 配置日志
    4. 第18章 其他资源
      1. 18.1 使用集成开发环境
      2. 18.2 寻找Flask扩展
      3. 18.3 寻求帮助
      4. 18.4 参与Flask社区
  12. 作者简介
  13. 关于封面

Product information

  • Title: Flask Web开发:基于Python的Web应用开发实战(第2版)
  • Author(s): Miguel Grinberg
  • Release date: August 2018
  • Publisher(s): O'Reilly Media, Inc. Beijing
  • ISBN: 9787115489456

You might also like

book

Python机器学习基础教程

by Andreas C. Müller, Sarah Guido

机器学习已成为许多商业应用和研究项目不可或缺的一部分,海量数据使得机器学习的应用范围远超人们想象。本书将向所有对机器学习技术感兴趣的初学者展示,自己动手构建机器学习解决方案并非难事! 书中重点讨论机器学习算法的实践而不是背后的数学,全面涵盖在实践中实现机器学习算法的所有重要内容,帮助读者使用Python和scikit-learn库一步一步构建一个有效的机器学习应用。 机器学习的基本概念及其应用 常用机器学习算法的优缺点 机器学习所处理的数据的表示方法,包括重点关注数据的哪些方面 模型评估和调参的高级方法 管道的概念 处理文本数据的方法,包括文本特有的处理方法 进一步提高机器学习和数据科学技能的建议

book

利用 Python 进行数据分析(原书第2版)

by Wes McKinney

阅读本书可以获得关于在Python下操作、处理、清洗、规整数据集的完整说明。本书第2版针对Python 3.6进行了更新,并增加了实际案例向你展示如何高效地解决一系列数据分析问题。你将在阅读过程中学习到较新版本的pandas、NumPy、IPython和Jupyter。 本书作者Wes McKinney是Python pandas项目的创始人。本书是对Python数据科学工具的实操化、现代化的介绍,非常适合刚学Python的数据分析师或刚学数据科学以及科学计算的Python编程者。数据文件和相关的材料可以在GitHub上找到。 使用IPython shell和Jupyter notebook进行探索性计算 学习NumPy(Numerical Python)的基础和高级特性 入门pandas库中的数据分析工具 使用灵活工具对数据进行载入、清洗、变换、合并和重塑 使用matplotlib创建富含信息的可视化 将pandas的groupby功能应用于对数据集的切片、切块和汇总 分析并操作规则和不规则的时间序列数据 利用完整的、详细的示例学习如何解决现实中的数据分析问题

book

bash shell脚本编程经典实例 (第2版)

by Carl Albing, JP Vossen

对于系统管理员、程序员和最终用户而言,shell命令或精心设计的shell脚本不仅能节省时间和精力,还可以提升各种常见任务的一致性和可重复性。作为一款流行的Unix shell,bash让你能够利用和自定义Unix或Linux系统的任意功能。 本书将全面讲述bash,内容适用于所有Unix和Linux用户,无论新人还是老手(包括熟练的Windows用户和管理员)。书中提供了300多个bash实例,每个实例均包含一个或多个示例脚本,能够帮你解决各种各样的问题。你将学到如何处理输入/输出、文件操作、程序执行、管理任务以及许多其他挑战。 本书实例包括: 标准输出和输入以及执行命令 shell变量、shell逻辑和算术 中级shell工具和高级脚本编写 使用find、locate和slocate查找文件 处理日期和时间 为各种最终用户任务创建shell脚本 处理涉及解析操作的任务 编写安全的shell脚本 配置和自定义bash

book

演进式架构

by Neal Ford, Rebecca Parsons, Patrick Kua

企业架构师不能再依赖静态计划了。软件开发体系在持续变化,新的工具、框架、技术和范式不断涌现。这给脆弱的系统带来了挑战,但也提供了更好的解决方案。近年来,核心软件工程实践中的快速变化让我们重新思考如何更改架构,使其与时俱进。本书结合相关实践,给出了让架构适应变化的新思路。 构建演进式架构主要涉及3个方面:适用度函数、增量变更和适当的耦合。ThoughtWorks的3位专家各讲一个方面,然后综述如何构建支持持续变更的架构。 适应度函数:架构呈现或前进的目标 增量变更:在开发和运维中实现渐进改变 架构耦合:确定适当的架构耦合以支持无瑕变更 演进式数据:随时间推移按要求和架构转变演进数据库 构建可演进的架构:结合以上各方面构建演进式架构 实践演进式架构:助你起步的实践指南