返回首页
苏宁会员
购物车 0
易付宝
手机苏宁

服务体验

店铺评分与同行业相比

用户评价:----

物流时效:----

售后服务:----

  • 服务承诺: 正品保障
  • 公司名称:
  • 所 在 地:

  • 正版新书]FLASK从入门到进阶:PYTHON WEB开发工程化实践李辉 著
  • 全店均为全新正版书籍,欢迎选购!新疆西藏青海(可包挂刷).港澳台及海外地区bu bao快递
    • 作者: 李辉 著 著著 | 李辉 著 著编 | 李辉 著 著译 | 李辉 著 著绘
    • 出版社: 机械工业出版社
    • 出版时间:2025-11-01
    送至
  • 由""直接销售和发货,并提供售后服务
  • 加入购物车 购买电子书
    服务

    看了又看

    商品预定流程:

    查看大图
    /
    ×

    苏宁商家

    商家:
    君凤文轩图书专营店
    联系:
    • 商品

    • 服务

    • 物流

    搜索店内商品

    商品分类

    商品参数
    • 作者: 李辉 著 著著| 李辉 著 著编| 李辉 著 著译| 李辉 著 著绘
    • 出版社:机械工业出版社
    • 出版时间:2025-11-01
    • 版次:1
    • 印次:1
    • 字数:1044000
    • 页数:1044
    • 开本:16开
    • ISBN:9787111793151
    • 版权提供:机械工业出版社
  • 作者: 李辉 著 著
  • 著: 李辉 著 著 译
  • 装帧: 平装
  • 印次: 1
  • 定价: 129
  • ISBN: 9787111793151
  • 出版社: 机械工业出版社
  • 开本: 16开
  • 印刷时间: 暂无
  • 语种: 暂无
  • 出版时间: 2025-11-01
  • 页数: 1044
  • 外部编号: 庄村28894
  • 版次: 1
  • 成品尺寸: 暂无
  • 目  录Contents<br />序<br />前 言<br />基础篇<br />第1章 初识Flask 3<br />1.1 搭建开发环境 4<br />1.1.1 创建练习项目目录 4<br />1.1.2 使用PDM管理虚拟环境和<br />依赖 4<br />1.1.3 设置PyPI镜像源 12<br />1.1.4 安装Flask 13<br />1.1.5 集成开发环境PyCharm 14<br />1.2 Hello,Flask! 18<br />1.2.1 创建程序实例 18<br />1.2.2 注册路由 19<br />1.3 开发服务器 21<br />1.3.1 Run,Flask,Run! 22<br />1.3.2 程序自动发现机制 23<br />1.3.3 开启调试模式 24<br />1.3.4 使服务器对外可见 27<br />1.3.5 改变默认端口 27<br />1.3.6 使用PyCharm运行服务器 27<br />1.4 Flask Shell 29<br />1.5 Flask扩展 30<br />1.6 项目配置 31<br />1.7 视图、URL和端点 32<br />1.8 Flask命令 33<br />1.9 模板与静态文件 35<br />1.10 获取和使用示例程序 35<br />1.11 本章小结 36<br />第2章 Flask与HTTP 37<br />2.1 请求-响应循环 38<br />2.2 HTTP请求 39<br />2.2.1 存储请求信息的request对象 42<br />2.2.2 在Flask中处理请求 44<br />2.2.3 请求钩子 48<br />2.3 HTTP响应 50<br />2.3.1 在Flask中生成响应 51<br />2.3.2 cookie和session对象 58<br />2.4 Flask上下文 65<br />2.4.1 上下文全局变量 65<br />2.4.2 推送上下文 67<br />2.4.3 上下文钩子 68<br />2.5 Web安全防范 69<br />2.5.1 注入攻击 69<br />2.5.2 XSS攻击 71<br />2.5.3 CSRF攻击 74<br />2.6 小实践:重定向到上一个页面 77<br />2.6.1 获取上一个页面的URL 78<br />2.6.2 对URL进行安全验证 80<br />2.7 本章小结 81<br />第3章 模板与静态文件 82<br />3.1 模板的基本用法 83<br />3.1.1 创建模板 83<br />3.1.2 模板语法 84<br />3.1.3 渲染模板 85<br />3.2 模板的辅助工具 88<br />3.2.1 模板上下文 88<br />3.2.2 全局对象 89<br />3.2.3 过滤器 90<br />3.2.4 测试器 93<br />3.2.5 模板环境对象 94<br />3.3 模板的组织结构 95<br />3.3.1 局部模板 95<br />3.3.2 宏 96<br />3.3.3 模板继承 97<br />3.4 静态文件 100<br />3.4.1 添加Favicon 102<br />3.4.2 使用CSS框架:Bootstrap 103<br />3.4.3 JavaScript和CSS中的Jinja 106<br />3.5 消息闪现 108<br />3.5.1 在视图函数中发送消息 108<br />3.5.2 在模板中渲染消息 108<br />3.6 自定义错误页面 110<br />3.7 使用Bootstrap-Flask简化模板<br />编写 112<br />3.8 本章小结 114<br />第4章 表单 115<br />4.1 HTML表单 115<br />4.2 使用WTForms和Flask-WTF<br />处理表单 116<br />4.2.1 定义表单类 117<br />4.2.2 输出表单HTML代码 120<br />4.2.3 在模板中渲染表单 121<br />4.3 处理表单数据 124<br />4.3.1 提交表单 124<br />4.3.2 验证表单数据 125<br />4.3.3 在模板中渲染错误消息 129<br />4.3.4 设置验证错误消息的语言 131<br />4.4 自定义验证器 132<br />4.4.1 验证方法 132<br />4.4.2 全局验证器 133<br />4.5 使用Bootstrap-Flask快速渲染<br />表单 134<br />4.5.1 渲染表单字段 135<br />4.5.2 渲染整个表单 136<br />4.5.3 渲染表单行 137<br />4.5.4 设置提交按钮的样式 137<br />4.6 本章小结 139<br />第5章 数据库 140<br />5.1 数据库分类 140<br />5.1.1 SQL 140<br />5.1.2 NoSQL 141<br />5.1.3 如何选择数据库 142<br />5.2 ORM魔法 142<br />5.3 安装和初始化Flask-<br />SQLAlchemy  144<br />5.4 连接数据库服务器 145<br />5.4.1 连接到SQLite 146<br />5.4.2 连接到MySQL 147<br />5.4.3 连接到PostgreSQL 148<br />5.5 定义SQLAlchemy模型类 148<br />5.5.1 定义表名 149<br />5.5.2 定义字段 150<br />5.5.3 定义__repr__()方法 154<br />5.6 创建数据库表 155<br />5.7 数据库操作 156<br />5.7.1 会话 156<br />5.7.2 插入新记录 157<br />5.7.3 获取记录 158<br />5.7.4 过滤记录 162<br />5.7.5 更新记录 168<br />5.7.6 删除记录 168<br />5.8 配置Python Shell上下文 169<br />5.9 定义关系 169<br />5.9.1 一对多 170<br />5.9.2 多对一 177<br />5.9.3 一对一 178<br />5.9.4 多对多 179<br />5.9.5 基于只写加载器(Write-only Loader)获取集合关系记录 185<br />5.9.6 是否使用外键 187<br />5.10 更新数据库表与数据迁移 188<br />5.10.1 重新生成表 188<br />5.10.2 使用Flask-Migrate迁移<br />数据库 189<br />5.10.3 开发时是否需要进行迁移 193<br />5.11 数据库高级实践 193<br />5.11.1 级联操作 193<br />5.11.2 事件监听 197<br />5.11.3 外键ON DELETE级联 199<br />5.12 使用Faker生成虚拟数据 199<br />5.13 小练习:编写一个记事本<br />程序 202<br />5.13.1 创建笔记 204<br />5.13.2 显示笔记列表 205<br />5.13.3 更新笔记 207<br />5.13.4 删除笔记 208<br />5.14 本章小结 211<br />第6章 自动化测试 212<br />6.1 了解自动化测试 212<br />6.2 Flask测试客户端 213<br />6.3 使用unittest编写单元测试 215<br />6.3.1 Flask程序的测试固件 215<br />6.3.2 为测试创建程序上下文 217<br />6.3.3 编写测试用例 218<br />6.3.4 运行测试 220<br />6.4 测试Flask命令 221<br />6.5 使用coverage.py计算测试<br />覆盖率 223<br />6.5.1 基本用法 223<br />6.5.2 获取测试覆盖率 225<br />6.5.3 使用pytest-cov集成<br />coverage.py 227<br />6.6 使用Ruff优化代码风格 228<br />6.6.1 代码风格检查 228<br />6.6.2 代码格式化 231<br />6.7 类型标注 232<br />6.8 本章小结 235<br />第7章 常用Flask开发技巧 237<br />7.1 使用Flask-Mailman发送电子<br />邮件 237<br />7.1.1 配置Flask-Mailman 238<br />7.1.2 构建邮件数据 241<br />7.1.3 发送邮件 242<br />7.1.4 发送多封邮件 243<br />7.1.5 提供HTML格式的邮件<br />正文 244<br />7.1.6 使用模板组织邮件正文 246<br />7.1.7 异步发送邮件 248<br />7.2 使用AJAX发送异步请求 249<br />7.2.1 认识AJAX 250<br />7.2.2 使用Fetch API发送AJAX<br />请求 251<br />7.2.3 处理AJAX请求 254<br />7.2.4 处理AJAX响应 255<br />7.3 使用Flask-WTF上传文件 257<br />7.3.1 定义上传字段 257<br />7.3.2 渲染上传表单 258<br />7.3.3 处理上传文件 259<br />7.3.4 查看和下载上传文件 261<br />7.3.5 上传多个文件 263<br />7.4 使用Flask-CKEditor集成富文本<br />编辑器 264<br />7.4.1 引入CKEditor JavaScript<br />资源 265<br />7.4.2 定义CKEditor编辑器字段并<br />渲染 266<br />7.4.3 配置CKEditor编辑器 267<br />7.4.4 获取编辑器字段数据并<br />渲染 269<br />7.4.5 使用Bleach进行HTML<br />安全清理 269<br />7.4.6 上传图片 271<br />7.5 使用CSRFProtect实现CSRF<br />保护 273<br />7.5.1 设置CSRF令牌 274<br />7.5.2 处理CSRF错误 276<br />7.6 使用Flask-DebugToolbar调试<br />程序 277<br />7.7 本章小结 279<br />实战篇<br />第8章 项目组织 283<br />8.1 基本项目组织技巧 283<br />8.1.1 使用包组织代码 284<br />8.1.2 在文件中存储程序配置 284<br />8.1.3 注册视图函数到程序实例 285<br />8.1.4 使用绝对导入 286<br />8.1.5 运行使用包组织的程序 287<br />8.1.6 创建子包 287<br />8.2 使用蓝本模块化程序 288<br />8.2.1 创建蓝本 288<br />8.2.2 装配蓝本 289<br />8.2.3 注册蓝本 291<br />8.2.4 蓝本的路由端点 292<br />8.2.5 蓝本静态文件和模板 293<br />8.2.6 蓝本嵌套 294<br />8.3 组织程序配置 295<br />8.3.1 从环境变量中读取配置 296<br />8.3.2 使用python-dotenv管理环境<br />变量 297<br />8.3.3 使用Python类组织程序<br />配置 299<br />8.4 使用工厂函数创建程序实例 300<br />8.4.1 初始化扩展 301<br />8.4.2 组织工厂函数 302<br />8.4.3 创建程序入口脚本 303<br />8.4.4 使用current_app获取程序<br />实例 305<br />8.5 组织测试 305<br />8.6 项目组织架构 307<br />8.6.1 功能式架构 307<br />8.6.2 分区式架构 308<br />8.6.3 如何选择组织架构 309<br />8.7 本章小结 310<br />第9章 程序实例:个人博客 311<br />9.1 Web程序开发流程 312<br />9.1.1 程序功能设计 313<br />9.1.2 前端页面开发 314<br />9.1.3 后端程序开发 317<br />9.1.4 部署上线 318<br />9.2 编写程序框架 318<br />9.2.1 创建数据库模型 320<br />9.2.2 邻接列表关系 323<br />9.2.3 生成虚拟数据 325<br />9.2.4 模板文件 329<br />9.2.5 基模板 330<br />9.2.6 模板上下文 332<br />9.2.7 视图函数 333<br />9.2.8 单元测试 334<br />9.3 渲染导航链接 335<br />9.4 实现Flash消息分类 337<br />9.5 日期和时间的本地化 338<br />9.5.1 存储UTC时间 339<br />9.5.2 使用Day.js渲染日期和<br />时间 339<br />9.5.3 渲染不同语言的时间 341<br />9.5.4 渲染日期时间 341<br />9.5.5 渲染相对时间 343<br />9.6 编写博客前台 345<br />9.6.1 分页显示文章列表 345<br />9.6.2 显示文章正文 352<br />9.6.3 文章固定链接 353<br />9.6.4 显示分类文章列表 357<br />9.6.5 显示评论列表 358<br />9.7 文章评论与回复 361<br />9.7.1 发送评论提醒邮件 361<br />9.7.2 创建评论表单 363<br />9.7.3 发表评论 364<br />9.7.4 支持回复评论 366<br />9.8 网站主题切换 368<br />9.9 创建管理员用户 370<br />9.9.1 安全存储密码 370<br />9.9.2 创建用户命令 373<br />9.10 使用Flask-Login管理用户<br />认证 374<br />9.10.1 获取当前用户 376<br />9.10.2 登录表单 377<br />9.10.3 登录用户 377<br />9.10.4 登出用户 379<br />9.10.5 视图保护 379<br />9.10.6 在单元测试中认证 381<br />9.11 编写博客管理后台 382<br />9.11.1 文章管理 384<br />9.11.2 评论管理 395<br />9.11.3 分类管理 401<br />9.12 本章小结 403<br />第10章 程序实例:图片社交<br />网站 404<br />10.1 程序功能与数据库设计 405<br />10.1.1 数据库模型与虚拟图片 407<br />10.1.2 模板和静态文件 409<br />10.1.3 使用Bootstrap图标 410<br />10.2 用户注册与验证 411<br />10.2.1 实现用户注册 412<br />10.2.2 使用JWT进行邮箱验证 414<br />10.2.3 使用装饰器过滤未确认<br />用户 418<br />10.2.4 密码重置 420<br />10.3 基于用户角色的权限管理 423<br />10.3.1 角色与权限模型 423<br />10.3.2 设置角色和权限 425<br />10.3.3 写入角色和权限 426<br />10.3.4 验证用户权限 429<br />10.4 使用Flask-Dropzone优化文件<br />上传功能 431<br />10.4.1 配置Flask-Dropzone 432<br />10.4.2 渲染上传区域 434<br />10.4.3 处理并保存上传图片 435<br />10.5 使用Flask-Avatars处理用户<br />头像 442<br />10.5.1 使用默认头像 443<br />10.5.2 生成随机头像 443<br />10.6 图片展示与管理 445<br />10.6.1 在用户主页显示图片<br />列表 446<br />10.6.2 图片详情页 450<br />10.6.3 上一张和下一张跳转 451<br />10.6.4 删除确认模态框 452<br />10.6.5 举报图片 455<br />10.6.6 图片描述 456<br />10.6.7 图片标签 459<br />10.6.8 用户资料弹窗 463<br />10.7 图片收藏 469<br />10.7.1 添加和取消收藏 470<br />10.7.2 收藏者和收藏页面 473<br />10.8 用户关注 476<br />10.8.1 自引用的多对多关系 476<br />10.8.2 关注与取消关注 477<br />10.8.3 显示关注用户列表 481<br />10.8.4 使用AJAX在弹窗中执行<br />关注操作 483<br />10.9 消息提醒 489<br />10.9.1 提醒消息在数据库中的<br />表示 489<br />10.9.2 创建提醒 490<br />10.9.3 显示和管理提醒 491<br />10.9.4 通过轮询实时更新未读<br />计数 494<br />10.10 用户资料与账户设置 496<br />10.10.1 编辑用户个人资料 497<br />10.10.2 自定义头像 498<br />10.10.3 更改密码 504<br />10.10.4 设置提醒消息开关 506<br />10.10.5 将收藏设置为仅自己<br />可见 507<br />10.10.6 注销账户 508<br />10.11 首页与探索 510<br />10.11.1 获取正在关注的用户的<br />图片 511<br />10.11.2 使用联结和分组查询<br />获取热门标签 513<br />10.11.3 使用数据库通用函数<br />获取随机图片 514<br />10.12 使用Flask-Whooshee实现<br />全文搜索 516<br />10.12.1 创建索引 517<br />10.12.2 搜索表单 518<br />10.12.3 显示搜索结果 519<br />10.13 编写网站后台 521<br />10.13.1 用户管理 522<br />10.13.2 资源管理 525<br />10.13.3 面向管理员的用户资料<br />编辑功能 526<br />10.14 使用Selenium进行用户界面<br />测试 528<br />10.14.1 基本用法 529<br />10.14.2 准备测试环境 530<br />10.14.3 编写测试代码 532<br />10.15 本章小结 534<br />进阶篇<br />第11章 Web API开发 537<br />11.1 认识Web API 537<br />11.2 资源URL和版本设计 540<br />11.2.1 多API版本的实现 541<br />11.2.2 为API蓝本禁用CSRF<br />保护 542<br />11.2.3 设置API前缀 543<br />11.2.4 设置API子域 543<br />11.3 使用HTTP方法描述操作 544<br />11.3.1 快捷路由装饰器 546<br />11.3.2 使用类视图编写API 546<br />11.4 使用JSON传输资源 547<br />11.4.1 获取JSON请求 549<br />11.4.2 生成JSON响应 549<br />11.4.3 处理错误响应 551<br />11.5 使用Flask-CORS添加CORS<br />支持 553<br />11.6 使用APIFlask开发Web API 554<br />11.6.1 基本用法 555<br />11.6.2 请求的验证与反序列化 558<br />11.6.3 响应的格式化与序列化 562<br />11.6.4 资源分页 564<br />11.6.5 程序错误处理 566<br />11.6.6 基于令牌的API认证 567<br />11.7 测试Web API 571<br />11.7.1 使用HTTPie测试API 572<br />11.7.2 为API编写单元测试 574<br />11.8 本章小结 575<br />第12章 性能分析与优化 576<br />12.1 程序性能分析 576<br />12.1.1 函数性能分析 577<br />12.1.2 数据库查询性能分析 578<br />12.2 使用Flask-Caching配置缓存 580<br />12.2.1 缓存视图函数 581<br />12.2.2 缓存其他函数 582<br />12.2.3 更新缓存 583<br />12.2.4 使用Redis作为缓存<br />后端 585<br />12.3 使用Flask-Assets优化静态<br />资源 586<br />12.3.1 注册资源集 587<br />12.3.2 生成资源集文件 588<br />12.3.3 在模板中加载资源集 589<br />12.4 本章小结 591<br />第13章 部署上线 592<br />13.1 部署方式 592<br />13.1.1 传统部署 592<br />13.1.2 容器部署 593<br />13.1.3 云部署 593<br />13.1.4 静态部署 593<br />13.2 基本部署流程 594<br />13.3 部署前的准备 595<br />13.3.1 更新程序配置 595<br />13.3.2 手动导入环境变量 596<br />13.3.3 设置迁移工具 597<br />13.3.4 记录程序日志 597<br />13.3.5 HTTPS转发 601<br />13.3.6 安装WSGI服务器 602<br />13.4 传统部署:部署到Linux<br />服务器 602<br />13.4.1 使用OpenSSH登录远程<br />主机 603<br />13.4.2 安装基础库和工具 603<br />13.4.3 安全防护措施 605<br />13.4.4 推送代码并初始化程序<br />环境 608<br />13.4.5 使用Gunicorn运行程序 609<br />13.4.6 使用Nginx提供反向代理 611<br />13.4.7 使用Supervisor管理进程 614<br />13.4.8 更新部署后的程序 617<br />13.5 容器部署:使用Docker进行<br />部署 618<br />13.5.1 安装Docker 618<br />13.5.2 构建程序镜像 619<br />13.5.3 运行和管理容器 624<br />13.5.4 配置管理 626<br />13.5.5 数据持久化 627<br />13.5.6 镜像分发 628<br />13.5.7 部署与升级 630<br />13.5.8 容器编排 631<br />13.6 下一步该做什么 633<br />13.7 本章小结 635<br />第14章 Flask工作原理与机制<br />解析 636<br />14.1 阅读Flask源码 636<br />14.1.1 获取Flask源码 637<br />14.1.2 如何阅读源码 637<br />14.2 Flask的设计理念 646<br />14.2.1 “微”框架 646<br />14.2.2 两个核心依赖 646<br />14.2.3 显式程序对象 646<br />14.2.4 本地上下文 647<br />14.2.5 三种程序状态 647<br />14.2.6 丰富的自定义支持 649<br />14.3 Flask与WSGI 649<br />14.3.1 WSGI程序 650<br />14.3.2 WSGI服务器 652<br />14.3.3 中间件 653<br />14.4 Flask的工作流程与机制 654<br />14.4.1 Flask中的请求-响应<br />循环 654<br />14.4.2 路由系统 659<br />14.4.3 本地上下文 664<br />14.4.4 请求与响应对象 674<br />14.4.5 session 676<br />14.4.6 蓝本 684<br />14.4.7 模板渲染 687<br />14.5 本章小结 690<br />附录 Flask资源 691

    李辉(Grey Li),Flask 与 APIFlask 的维护者,Flask 官方开发团队(Pallets Projects)成员,HelloFlask 与代码厨房社区(CodeKitchen Community)的创建者,微软 Python 方向最有价值专家(Microsoft MVP)。现就职于戴尔中国卓越研发集团,担任首席软件工程师。<br />他对 Flask 有非常深入的研究,熟悉其源代码,拥有丰富的项目实践经验。热衷于开源软件的应用与推广,曾为包括 Flask 在内的多个开源项目贡献大量代码,并多次在 PyCon China、PyCon US、COSCUP、COSCon、Community Over Code 等技术大会上发表演讲。<br />你可以在 GitHub(github.com/greyli)上查看他的开源项目,或访问个人网站(greyli.com)了解更多信息。<br /><br />本书主页:https://helloflask.com/book/4<br />本书论坛:https://codekitchen.community<br />读者 QQ 群:419980814

    (1)作者背景资深:作者是Flask官方团队成员,Flask 与 APIFlask 的维护者,戴尔中国卓越研发集团首席软件开发工程师
    (2)作者经验丰富:作者对 Flask 有非常深入的研究,熟悉其源代码,拥有丰富的项目实践经验,为包括 Flask 在内的多个开源项目贡献大量代码。
    (3)畅销书大升级:本书是畅销书《Flask Web开发实战(豆瓣评分9.1,累计印刷14次)》的升级版,作者历时5年,耗时600多个小时,做了全面的升级。
    (4)内容系统全面:从Flask的基础知识到完整的Flask项目实战,从Web API开发到Flask应用的性能优化,从Flask项目的生产部署到Flask的源码解析,本书提供了完整的Python Web工程化学习路径。
    (5)实战案例丰富:基础篇的大部分章节都针对相应的知识点提供了完整可运行的示例程序,实战篇则通过2个较为完整的Flask项目讲解了Flask项目的组织方式和技巧,以及Flask开发中各类功能的实现方法和技巧。
    (6)技术新颖前瞻:书中的代码和示例程序均基于 Flask 新发布的稳定版 3.x 编写,书中涉及的其他 Python 包和前端库也全部采用当前的新版本,确保本书在未来较长一段时间内仍可保持先进性和实用性。

    售后保障

    最近浏览

    猜你喜欢

    该商品在当前城市正在进行 促销

    注:参加抢购将不再享受其他优惠活动

    x
    您已成功将商品加入收藏夹

    查看我的收藏夹

    确定

    非常抱歉,您前期未参加预订活动,
    无法支付尾款哦!

    关闭

    抱歉,您暂无任性付资格

    此时为正式期SUPER会员专享抢购期,普通会员暂不可抢购