当前位置: 首页 > news >正文

建设网站的准备杭州房地产网站建设

建设网站的准备,杭州房地产网站建设,企业网站开发职责,wordpress微信文章前言 某些情况下,需要向客户端返回错误提示。 这里所谓的客户端包括前端浏览器、其他应用程序、物联网设备等。 需要向客户端返回错误提示的场景主要如下: 客户端没有执行操作的权限客户端没有访问资源的权限客户端要访问的项目不存在等等 … 遇到这些…

前言

某些情况下,需要向客户端返回错误提示。
这里所谓的客户端包括前端浏览器、其他应用程序、物联网设备等。
需要向客户端返回错误提示的场景主要如下:

  • 客户端没有执行操作的权限
  • 客户端没有访问资源的权限
  • 客户端要访问的项目不存在
  • 等等 …

遇到这些情况时,通常要返回 4XX(400 至 499)HTTP 状态码
4XX 状态码与表示请求成功的 2XX(200 至 299) HTTP 状态码类似。
只不过,4XX 状态码表示客户端发生的错误。

使用 HTTPException

向客户端返回 HTTP 错误响应,可以使用 HTTPException

from fastapi import FastAPI, HTTPExceptionapp = FastAPI()items = {"foo": "The Foo Wrestlers"}@app.get("/items/{item_id}")
async def read_item(item_id: str):if item_id not in items:raise HTTPException(status_code=404, detail="Item not found")return {"item": items[item_id]}

触发 HTTPException

HTTPException 是额外包含了和 API 有关数据的常规 Python 异常。
因为是 Python 异常,所以不能 return,只能 raise

如在调用_路径操作函数_里的工具函数时,触发了 HTTPException,FastAPI 就不再继续执行_路径操作函数_中的后续代码,而是立即终止请求,并把 HTTPException 的 HTTP 错误发送至客户端。

在介绍依赖项与安全的章节中,您可以了解更多用 raise 异常代替 return 值的优势。

本例中,客户端用 ID 请求的 item 不存在时,触发状态码为 404 的异常:

    raise HTTPException(status_code=404, detail="Item not found")

响应结果

请求为 http://example.com/items/fooitem_id 为 「foo」)时,客户端会接收到 HTTP 状态码 - 200 及如下 JSON 响应结果:

{"item": "The Foo Wrestlers"
}

但如果客户端请求 http://example.com/items/baritem_id 「bar」 不存在时),则会接收到 HTTP 状态码 - 404(「未找到」错误)及如下 JSON 响应结果:

{"detail": "Item not found"
}

触发 HTTPException 时,可以用参数 detail 传递任何能转换为 JSON 的值,不仅限于 str
还支持传递 dictlist 等数据结构。
FastAPI 能自动处理这些数据,并将之转换为 JSON。

添加自定义响应头

有些场景下要为 HTTP 错误添加自定义响应头。例如,出于某些方面的安全需要。

一般情况下可能不会需要在代码中直接使用响应头。

但对于某些高级应用场景,还是需要添加自定义响应头:

from fastapi import FastAPI, HTTPExceptionapp = FastAPI()items = {"foo": "The Foo Wrestlers"}@app.get("/items-header/{item_id}")
async def read_item_header(item_id: str):if item_id not in items:raise HTTPException(status_code=404,detail="Item not found",headers={"X-Error": "There goes my error"},)return {"item": items[item_id]}

响应结果

HTTP/1.1 404 Not Found
date: Sun, 24 Sep 2023 01:31:18 GMT
server: uvicorn
x-error: There goes my error
content-length: 27
content-type: application/json{"detail":"Item not found"}
http://www.yayakq.cn/news/202431/

相关文章:

  • 海淘网站建设的目的地坪网站建设
  • 网站制作公司数据库管理排名白帽seo公司
  • 影视网站源码下载旅游网络推广怎么做
  • 网站 排版模板网站建设流程策划方案
  • 重庆网站定制开发小制作小发明视频
  • 企业营销策划有限公司桂林网站优化公司
  • 张家港网站建设价格要如何关闭公司网站 撤销备案
  • 濮阳建设公司网站贸易公司广告网站
  • 企业建网站作用网页视频怎么下载到电脑上
  • 网页设计与网站建设作业进一步加强舆情管控
  • 门户网站建设经验总结建设部标准定额研究所网站
  • 做1688网站需要懂英语吗企业网站托管技巧
  • 网站关键词密这么稀释35网站建设
  • 南京维露斯网站建设全国建设交易信息网站
  • wordpress建什么站网站移动窗口代码
  • 邯郸网站推广怎么做网上电商
  • 网站seo诊断书wordpress如何数据转移
  • 西安网站建设seo优化邯郸移动网站建设报价
  • 网站开发中wordpress自定义新页面链接
  • php 开发手机网站专业服务网站建设
  • 开淘宝店要自己做网站吗普达建站快车
  • 怎么做一款网站网站做相册
  • 郑州手机网站建设长沙市seo百度关键词
  • 品牌茶业都在哪些网站做宣传自己做装修网站需要多少钱
  • 孝义做网站的公司广东富盈建设有限公司企业网站
  • cms做视频网站中英文网站切换怎么做
  • 江西做网站的公司视觉传达设计专业
  • 国内最先做弹幕的网站爱网站在线观看视频
  • 惠州企业网站建设选哪家网站兼容问题
  • 网站上线之后要做的工作jk网站建设