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

服务体验

店铺评分与同行业相比

用户评价:----

物流时效:----

售后服务:----

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

  • FastAPI学习手册
  • 新商品上架
    • 作者: (美)比尔·卢巴诺维奇著 | | 爱飞翔译
    • 出版社: 中国电力出版社
    • 出版时间:2025-06
    送至
  • 由""直接销售和发货,并提供售后服务
  • 加入购物车 购买电子书
    服务

    看了又看

    商品预定流程:

    查看大图
    /
    ×

    苏宁商家

    商家:
    江莱图书专营店
    联系:
    • 商品

    • 服务

    • 物流

    搜索店内商品

    商品分类

    商品参数
    • 作者: (美)比尔·卢巴诺维奇著| 爱飞翔译
    • 出版社:中国电力出版社
    • 出版时间:2025-06
    • 开本:16开
    • ISBN:9787519899585
    • 版权提供:中国电力出版社

    编辑推荐FastAPI是个年轻而稳健的框架,它设计得相当清晰,并且利用了Python语言中的一些新性。正如其名称所示,这个框架的速度确实快,能够与采用Go语言所编写的框架相争。熟悉Python语言的开发者能够通过这本实用教程,学到如何运用FastAPI框架,以尽可能少的代码迅速开发出Web应用。本书作者描述了FastAPI开发中的诸多细节,并通过各种示例,讲解了表单、数据库访问、图表与地图制作等高级话题。这本书能够帮助你迅速了解RESTful API、数据验证、授权,以及性能优化等技术。FastAPI与Flask及Django框架类似,用过那两种框架的读者很容易就能学会FastAPI。专家推荐;这本书让你轻松学会FastAPI。作者熟练地演示了这个框架的用法,让家很容易就能理解FastAPI的一些概念。你可以将书里的实用知识,立刻运用到实际的编程中。Ganesh Harke,花旗银行(Citibank)的高级软件工程师;这本书详细讲解了FastAPI框架及其周边产品,让读者迅速而全面地掌握如何用这套技术做Web开发。William Jamir Silva,Adjust GmbH 的高级软件工程师

    本书涵盖了以下内容:怎样使用FastAPI构建Web应用程序。FastAPI、Starlette与 Pydantic之间的区别及联系。让FastAPI框架与众不同的两项性,也就是对异步函数的支持,以及数据类型的检测及验证机制。Python 3.8及后续版本所支持的新功能,尤其是类型注解机制。同步Python代码与异步Python代码之间的区别。怎样与外部的API及服务相连接。

    Bill Lubanovic拥有四十多年的开发经验,精通Linux系统、Web开发,以及Python语言。他*Z近与同事采用FastAPI重写了一套做生物医学研究的型API。Bill是Orsquo;Reilly出版的《Linux System Administration》一书的合著者,他还撰写了Orsquo;Reilly的《Introducing Python》。

    目录前言 1第一部分 新知识介绍第1 章 当代的Web . 111.1 预览 . 111.2 服务与API 121.2.1 API 的类型 .121.2.2 HTTP .141.2.3 REST(RESTful) .141.2.4 JSON 与API 数据格式.171.2.5 JSON:API 171.2.6 GraphQL 171.3 并发 .181.4 分层 .191.5 数据 .251.6 小结 .25第2 章 当代的Python 272.1 预览 .272.2 工具 .272.3 Python 入门 .282.3.1 Python 语言本身 .292.3.2 Python 语言的软件包管理机制 302.3.3 虚拟环境 .302.3.4 Poetry 312.3.5 源代码的格式 322.3.6 测试 322.3.7 源代码控制与持续集成 332.3.8 Web 开发工具 332.4 API 与服务 342.5 变量只不过是个名字 342.6 类型提示362.7 数据结构372.8 Web 框架 372.8.1 Django 372.8.2 Flask 382.8.3 FastAPI.382.9 小结 .39第二部分 FastAPI 导览第3 章 FastAPI 简介 433.1 预览 .433.2 什么是FastAPI 433.3 FastAPI 应用程序 .443.4 处理HTTP 请求 503.4.1 通过URL 路径传递参数 .513.4.2 通过查询字符串传递参数 533.4.3 通过请求体传递参数.553.4.4 通过Header 传递参数 573.4.5 通过多种方式获取HTTP 请求之中的数据 593.4.6 用哪一种方式获取数据*好 .593.5 给出HTTP 响应 593.5.1 状态码 603.5.2 Header 613.5.3 HTTP 响应的类型 613.5.4 类型转换 .623.5.5 通过response_model 返回另一种数据模型 633.6 自动化的文档 .663.7 如何处理更为复杂的数据 693.8 小结 .69第4 章 异步、并发与Starlette 简介 .714.1 预览 .714.2 Starlette .714.3 并发的类型 724.3.1 分布式计算与并行计算 734.3.2 操作系统级别的进程.734.3.3 操作系统级别的线程.744.3.4 绿色线程 .744.3.5 回调 754.3.6 Python 生成器 754.3.7 Python 的async、await 关键字与asyncio 库 774.4 FastAPI 与异步开发 794.5 直接使用Starlette 做Web 开发 .824.6 插曲:清理Clue House .834.7 小结 .85第5 章 Pydantic、类型提示与数据模型简介 . 875.1 预览 .875.2 类型提示875.3 给数据归组 915.4 其他一些数据归组方案 .975.5 一个简单的示例 995.6 对类型做验证 1035.7 对取值做出验证 .1045.8 小结 107第6 章 描述依赖关系 1096.1 预览 1096.2 什么是依赖 .1096.3 由依赖导致的问题 . 1106.4 依赖注入. 1116.5 FastAPI 的依赖注入 . 1116.6 在FastAPI 代码里面描述依赖关系 1126.7 依赖关系的作用范围 1136.7.1 为单个的路径函数指定依赖关系 . 1136.7.2 为多条路径指定同一种依赖关系 . 1156.7.3 为整个应用程序指定依赖关系 1166.8 小结 116第7 章 各种Web 框架之间的对比 1177.1 预览 1177.2 Flask 与FastAPI 的异同 . 1187.2.1 处理URL 之中的参数 1187.2.2 处理查询字符串之中的参数 1207.2.3 处理请求体之中的参数 .1207.2.4 处理标头之中的参数1217.3 Django 框架与Flask 及FastAPI 的异同 .1227.4 这三种Web 开发框架在其他方面的性对比 1237.5 这三个框架在数据库方面的异同 1247.6 如何在这三种框架之间选择 .1257.7 其他一些Python Web 框架 1257.8 小结 126第三部分 制作网站第8 章 Web 层 1298.1 预览 1298.2 插曲:从上到下、从下到上,还是从内到外 1308.3 REST 式的设计 1328.4 网站的文件与目录布局 1348.5 网站的第一版代码 .1378.6 处理HTTP 请求 .1408.7 在顶级app 下面添加多个次一级的subrouter .1428.8 构建Web 层 1438.9 定义数据模型 1438.10 Stub Data 与Fake Data .1448.11 先确定一些常见的操作 1448.12 建立Fake Data .1458.13 开始测试 1518.14 利用FastAPI 自动生成的测试表单作测试 .1528.15 Web 层应该通过Service 层做中介,而不应直接与Data 层通信 1558.16 分页与排序 .1568.17 小结 158第9 章 Service 层 . 1599.1 预览 1599.2 如何确定网站所应提供的服务 1599.3 网站的文件布局 .1609.4 确保网站安全 1619.5 实现Service 层中的各种函数1619.6 测试 1639.7 Service 层的其他事务 1659.7.1 日志记录 1669.7.2 指标测量、监控、可观测性 1669.7.3 追踪 .1679.7.4 杂项 .1679.8 小结 168第10 章 Data 层 . 16910.1 预览 16910.2 DB-API .16910.3 SQLite 17210.4 网站的文件布局 17410.5 让网站运作起来 17510.6 测试 18110.6.1 全面测试 18210.6.2 单元测试 19310.7 小结 196第11 章 认证与授权 19711.1 预览 19711.2 又得跑个题:我们真的需要做认证吗 19811.3 认证方式 19911.4 全局认证:让所有人共用密语 .20011.5 对每一位访问者分别做认证 20411.6 采用新式技术给每一位访问者分别做认证 .20511.6.1 OAuth2 20611.6.2 表示用户的User 模型 .20811.6.3 实现Data 层中与User 有关的操作 20811.6.4 实现一套与Data 层中的User 操作类似的Fake 操作 .21011.6.5 实现Service 层中与User 有关的操作 .21211.6.6 实现Web 层中与User 有关的操作 21411.6.7 测试 21611.6.8 修改顶层的主程序 21611.6.9 回顾早前实现的认证步骤 .21711.6.10 JWT 21811.6.11 经由OIDC 协议,通过第三方账号做认证.21911.7 授权 22011.8 中间件 22211.8.1 CORS(跨域资源共享) 22211.8.2 通过第三方包实现认证与授权 22411.9 小结 225第12 章 测试 22712.1 预览 22712.2 对Web API 做测试 .22712.3 对哪里的代码做测试 .22812.4 如何做测试 .22912.5 Pytest .23012.6 网站的文件布局 23112.7 自动化的单元测试 23212.7.1 Mocking .23212.7.2 Test Double 与Fake 23712.7.3 对Web 层做测试 23912.7.4 对Service 层做测试 .24212.7.5 对Data 层做测试 24412.8 自动化的集成测试 24612.9 Repository 模式 24812.10 自动化的全面测试 24812.11 安全测试 25112.12 负载测试 25212.13 小结 .253第13 章 将网站部署到生产环境之中 25513.1 预览 25513.2 部署网站 25513.2.1 采用多个Worker 来运行服务器 .25613.2.2 HTTPS .25713.2.3 Docker .25713.2.4 云服务 .25813.2.5 Kubernetes .25913.3 改善网站的性能 25913.3.1 Async 26013.3.2 缓存 26013.3.3 数据库、文件、内存 26013.3.4 队列 26113.3.5 Python 本身 26113.4 疑难排解 26213.4.1 确定这是哪一类问题 26213.4.2 查看日志 26313.4.3 收集指标 26313.5 小结 264第四部分 漫谈第14 章 数据库、数据科学以及一点点AI 26714.1 预览 26714.2 数据存储方案 26814.3 关系型数据库及SQL 26914.3.1 SQLAlchemy 26914.3.2 SQLModel .27214.3.3 SQLite .27214.3.4 PostgreSQL 27314.3.5 EdgeDB 27314.4 非关系型数据库(NoSQL 数据库) .27414.4.1 Redis 27514.4.2 MongoDB 27514.4.3 Cassandra 27514.4.4 Elasticsearch .27514.5 SQL 数据库中的NoSQL 性 27514.6 数据库负载测试 27714.7 数据科学与人工智能(AI) .27914.8 小结 282第15 章 文件 28315.1 预览 28315.2 如何支持分块传输 28315.3 上传文件 28315.3.1 通过File() 实现文件上传 28415.3.2 通过UploadFile 实现文件上传 28515.4 下载文件 28715.4.1 FileResponse 28715.4.2 StreamingResponse 28815.5 提供静态文件服务 28915.6 小结 291第16 章 表单与模板 . 29316.1 预览 29316.2 表单 29316.3 模板 29616.4 小结 300第17 章 数据发现与数据可视化 30117.1 预览 30117.2 Python 与数据处理 .30117.3 读取并输出PSV 格式的文本数据 30217.3.1 用csv 包读取PSV 文件 .30317.3.2 用python-tabulate 包读取PSV 文件 30417.3.3 用pandas 读取PSV 文件并输出其内容 .30517.4 读取SQLite 数据库中的数据并以网页的形式显示 30617.4.1 与图表显示有关的软件包 .30717.4.2 图表示例1:试用Plotly 30817.4.3 图表示例2:绘制直方图 31117.4.4 与地图显示有关的软件包 .31217.4.5 地图示例 31417.5 小结 315第18 章 游戏 31718.1 预览 31718.2 与游戏制作有关的Python 包 31718.3 拆分游戏逻辑 31818.4 游戏的设计 .31918.5 Web 层的第一部分工作:实现游戏的初始化 32018.6 Web 层的第二部分工作:实现游戏的后续步骤 32218.7 Service 层的第一部分工作:实现游戏的初始化 32418.8 Service 层的第二部分工作:判断玩家猜测得是否正确32518.9 测试 32618.10 Data 层的工作:实现游戏的初始化 32718.11 开始玩这个猜单词游戏 .32718.12 小结 .329附录A 延伸阅读 . 331附录B 用作示例数据的神秘生物及探索者 335

    【前言】

    前言这是一本关于FastAPI 的实用教程,告诉家如何使用这款当代的Web 框架,以当代的Python 语言来做开发。另外,你也可以将这本书当成一个故事,你会看到我们如何将自己所遇到的奇妙物件,变换成有用的工具。虽说;没有银色的子弹(No silver bullet,相当于;没有灵丹妙药),可要是真的遇到了狼人,还就是得靠它才行(提前说一下,我们后面确实会碰到狼人)。笔者从1970 年代中期,开始编写科学应用程序。1977 年,第一次在PDP-11计算机上面,接触到了UNIX 操作系统以及C 语言,我当时感觉到,像UNIX这样的系统,以后应该会流行起来。1980 年代与1990 年代初,互联网还没有呈现出今天的规模,但那个时候,已经有了许多很棒的免费软件与技术信息。1993 年的互联网,处在刚刚起步的阶段,那时出现了一款叫作Mosaic 的网页浏览器,我当时感觉到,像Mosaic 这样的浏览器,以后应该会流行起来。几年后,笔者成立了一间做Web 开发的公司,当时的开发工具,就是老生常谈的那几样,也就是PHP、HTML 与Perl。过了几年,我们接到一个合约项目,直到那时,我才开始试用Python,它竟然能够如此迅速地访问、操纵并显示数据,这很令我赞叹。我只拿了两个星期的空闲时间,就把一款需要四位开发者用一年才写好的C 程序,以Python 语言重制了一遍。当时我感觉到,像Python 这样的编程语言,以后应该会流行起来。从此以后,笔者的多数工作,用的就是Python 语言以及针对这门语言的Web框架了,这主要是指Flask 与Django。我尤其喜欢简洁的Flask,所以在许多任务里面,都采用它来做开发。但是,我在几年前发现了一个宝藏,这是一种新的Web 框架,叫作FastAPI,它是由Sebastiaacute;n Ramiacute;rez 编写的。笔者阅读了FastAPI 的文档,其中提到的设计思路与设计理念,给我留下了深刻印象(文档写得很棒,家可以去这里查阅:http://fastapi.tiangolo.com)。尤其是那个介绍开发历史的页面(http://oreil.ly/Ds-xM),让我体会到,他是在很谨慎地评估了与FastAPI 同类的方案之后,才决定建立这样一个新框架的。这不是一个自说自话的项目,也不是一个随便玩玩的东西,而是一套能够认真解决现实开发问题的框架。所以,当时我感觉到,像FastAPI 这样的框架,以后应该会流行起来。我用FastAPI 做了一套生物医学方面的API,由于效果不错,因此我们在第二年组织了一个团队,把以前的核心API,用FastAPI 重写了一遍。重写之后的API 目前仍在使用,而且运作得很好。我们在那次重写之中获得的经验,家都会在这本书里面看到,我们当时都认为,重写之后的代码比以前好,它的速度更快,bug 也更少。值得一提的是,那个团队里面的一些人,根本就没有用过Python,而且在所有的人里面,我是唯一一个用过FastAPI 的。所以,当笔者有机会给《Introducing Python》一书写后续作品时,我向出版方Orsquo;Reilly 建议的首选话题,就是FastAPI。笔者认为,FastAPI 的影响力至少跟Flask 与Django 持平,甚至有可能更。刚才说过,FastAPI 网站本身,已经提供了一流的文档,而且详细讲述了与Web 开发有关的常见话题,例如数据库、认证、部署等。既然如此,为什么还要写这样的一本书呢?这是因为,这不是一本把已经有人讲过的那些知识,给全部重讲一遍的书,那样的书太累人了。这是一本为了有用而写的书,它要帮助你迅速掌握FastAPI的主要概念,并加以运用。我会把值得家去研究的技术指出来,还会针对日常的开发任务给出建议。书里的每一章,都会用一个;预览(也就是;内容提要)来开头。然后,笔者会详细讲述这一章的话题,当然也会偶尔跑个题。*后,会用一个;回顾(也就是;小结)来概括全章。虽然观点应该建立在事实之上,但老话说得好,;事实本身也是有观点的(These are the opinions on which my facts are based)。所以,笔者在书里讲的内容,可能与每位读者的具体经历有所出入,但我还是希望这些内容,能够给家提供足够的帮助,让你成为一位更有效率的Web 开发者。排版约定本书采用以下排版约定。斜体(Italic)表示新术语、URL、电子邮件地址、文件名和文件扩展名。等宽字体(Constant width)表示程序清单,在段落内表示程序元素,例如变量、函数名称、数据库、数据类型、环境变量、语句和关键字。粗体等宽字体(Constant width bold)表示应由用户原封不动输入的命令或其他文本。斜体等宽字体(Constant width italic)表示应该替换成用户提供值的文本,或者由上下文决定的值。表示提示或建议。表示一般性说明。如何使用示例代码本书的补充材料( 例如示例代码、习题等), 可以从http://github.com/madscheme/fastapi 下载。如果有技术问题或是在使用示例代码时遇到困难,请发电子邮件至support@oreilly.com。本书是要帮你完成工作的。一般来说,如果本书提供了示例代码,你可以把它用在你的程序或文档中。除非你使用了很一部分代码,否则无需联系我们获得许可。比如,用本书的几个代码片段写一个程序就无需获得许可,销售或分发Orsquo;Reilly 图书的示例集则需要获得许可;引用本书中的示例代码回答问题无需获得许可,将书中量的代码放到你的产品文档中则需要获得许可。我们很希望但并不强制要求你在引用本书内容时加上引用说明。引用说明一般包括书名、作者、出版社和ISBN,例如:;FastAPI by Bill Lubanovic (Orsquo;Reilly).Copyright 2024 Bill Lubanovic, 978-1-098-13550-8。如果你觉得自己对示例代码的使用超出了上述许可范围,请通过permissions@oreilly.com 与我们联系。Orsquo;Reilly 在线学习平台(Orsquo;Reilly Online Learning)近40 年来,Orsquo;Reilly Media 致力于提供技术和商业培训、知识和卓越见解,来帮助众多公司取得成功。公司独有的专家和改革创新者网络通过Orsquo;Reilly 书籍、文章以及在线学习平台,分享他们的专业知识和实践经验。Orsquo;Reilly 在线学习平台按照您的需要提供实时培训课程、深入学习渠道、交互式编程环境以及来自Orsquo;Reilly 和其他200 多家出版商的量书籍与视频资料。更多信息,请访问网站:http://www.oreilly.com/。联系我们任何有关本书的意见或疑问,请按照以下地址联系出版社。美国:Orsquo;Reilly Media, Inc.1005 Gravenstein Highway NorthSebastopol, CA 95472中国:北京市西城区西直门南街2 号成铭厦C 座807 室(100035)奥莱利技术咨询(北京)有限公司这本书在Orsquo;Reilly 网站上面有相应的网页,其中包含勘误表、示例代码,以及其他一些附加信息。这个页面的网址是:http://oreil.ly/FastAPI。有勘误内容请反馈给:errata@oreilly.com.cn。与我们的书籍和课程有关的新闻及信息,参见http://oreilly.com 网站。我们的LinkedIn:http://linkedin.com/company/oreilly-media。我们的Twitter:http://twitter.com/oreillymedia。我们的YouTube:http://youtube.com/oreillymedia。致谢笔者要感谢自己在许多地方遇到的许多位朋友,是你们让我获益良多:? Serra High School(Serra 中学)? The University of Pittsburgh(匹兹堡学)? The Chronobiology Laboratories, University of Minnesota(明尼苏达学时间生物学实验室)? Intran? Crosfield-Dicomed? Northwest Airlines(西北航空)? Tela? WAM!NET? Mad Scheme? SSESCO 公司? Intradyn 公司? Keep? Thomson Reuters(汤森路透)? Cray 公司? Penguin Computing 公司? Internet Archive(互联网档案馆)? CrowdStrike 公司? Flywheel

    商品目录加载中......
    1
    • 商品详情
    • 内容简介

    售后保障

    最近浏览

    猜你喜欢

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

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

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

    查看我的收藏夹

    确定

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

    关闭

    抱歉,您暂无任性付资格

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