首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

FastAPI学习-30 项目代码中添加自己的日志内容

前言 前面一篇【FastAPI学习-29 uvicorn 使用 log_config 参数设置 logger 日志格式 】已经学会了配置uvicorn 的日志。...配置logger 参考上一篇篇【FastAPI学习-29 uvicorn 使用 log_config 参数设置 logger 日志格式 】,默认loggers配置了3个:uvicornuvicorn.error...重新访问就可以看到输出的日志格式与默认格式一样的了。 其它方法 还有个更简便的方法,直接从 uvicorn 导入 logger 实例, 这样就不用配置日志了。...from fastapi import FastAPIfrom uvicorn.server import logger app = FastAPI()@app.get("/demo/")async...") logger 的名称是”fastapi”,参考前面自定义的logger,需要在 log_config 参数里面配置,才有日志格式

48510

FastAPI--错误处理(5)

比如: import uvicorn from fastapi import FastAPI, HTTPException app = FastAPI() items = {"foo": "The ...HTTPException且返回新增自定义请求头 import uvicorn from fastapi import FastAPI, HTTPException app = FastAPI()...自定义返回HTTPException 类似之前Bottle我们通过添加一个自定义的全局的错误,来统一的处理返回。...FastAPI其实也提供一个自定义错误的机制: 官方示例如下: import uvicorn from fastapi import FastAPI, Request from fastapi.responses...覆盖FastAPI默认的异常处理 按官方文档说明就是,当请求包含无效的数据的时候,或参数提交异常错误的时候,会抛出RequestValidationError, 那其实我也可以通过上面的自定义异常的方式来覆盖重写我们的

1.2K20

FastAPI 配置日志的三种方法

第一种,就像写脚本那样记录日志 这一种方法最简单直接,平时写脚本的时候怎么记录日志,这里就怎么记录日志,通常就是先配置日志格式,然后在需要的地方 logger.info 一下: 配置日志: import...的日志 fastapi 其实是 uvicorn 驱动的,uvicorn 本身就会在终端输出信息: ❯ uvicorn main:app --host 0.0.0.0 --port 8081 INFO:...第三种,配置 uvicorn 的日志 如果你是这种方法运行 FastApi: app = FastAPI() uvicorn.run(app, host="0.0.0.0", port=8000) 那么可以在代码里配置...: [console] propagate: no root: level: DEBUG handlers: [console] 日志文件支持 .ini, .json, .yaml 格式...最后的话 本文分享了 FastAPI 配置日志的三种方法,后两种其实是 uvicorn 配置并记录日志的方法。

6.8K31

(完结篇)Python web框架FastAPI——一个比Flask和Tornada更高性能的API 框架

uvicorn.run(app, host="127.0.0.1", port=8000) 请求重定向中间件 from fastapi import FastAPI from starlette.middleware.httpsredirect...3 自定义 Response 状态码 在一些特殊场景我们需要自己定义返回的状态码 from fastapi import FastAPI from starlette import status app...4 关于部署 部署 FastAPI 应用程序相对容易 Uvicorn FastAPI 文档推荐使用 Uvicorn 来部署应用( 其次是 hypercorn),Uvicorn 是一个基于 asyncio...开发的一个轻量级高效的 Web 服务器框架(仅支持 python 3.5.3 以上版本) 安装 pip install uvicorn 启动方式 uvicorn main:app --reload...Nginx 在 Uvicorn/Gunicorn + FastAPI 的基础上挂上一层 Nginx 服务,一个网站就可以上线了,事实上直接使用 Uvicorm 或 Gunicorn 也是没有问题的

3.1K40

FastAPI框架诞生的缘由(下)

它的工作方式是,在 Python 的文档字符串内部使用 YAML 格式的描述来为每一个函数自动生成文档。它会生成 OpenAPI 的 schemas。...它启发了 Uvicorn 和 Starlette 的创建,后者在开放的基准方面比 Sanic 还要快。 启发 FastAPI 地方 找到一个拥有极端性能表现的方法。...它在声明中使用了自定义类型,而不仅是 Python 的标准类型,但这仍然是巨大的进步。 它也是第一个生成自定义模式的框架,该自定义模式以 JSON 声明整个 API。...APIStar 是由 Tom Christie 创建的,他也创建了以下框架: Django REST框架 Starlette(FastAPI所基于的) Uvicorn(由 Starlette 和 FastAPI...只有 Uvicorn 超越了它,Uvicorn 不是框架,而是服务器。 Starlette 提供了所有基本的 Web 微框架功能。但是它不提供自动数据验证,序列化或API 文档。

2.3K20

FastAPI(2)- 快速入门

安装 FastAPI pip install fastapi # 将来需要将应用程序部署到生产环境可以安装 uvicorn 作为服务器 pip install uvicorn 最简单的代码栗子 from...World"} 运行 uvicorn 命令,启动服务器 进到 py 文件所属目录的命令行 uvicorn main:app --reload main:main.py 文件(一个 Python「模块...,作用是什么 JSON Schema OpenAPI 会为 API 定义 API Schema,一般会包括 API 发送和接收的数据的定义,比如:发送的数据的类型、是否必填 这些定义会以 JSON数据格式展示出来...就是 FastAPI 类的一个实例对象啦 重点:app 将是创建所有 API 的主要交互对象 要点:uvicorn 执行命令时也会用到 app uvicorn main:app --reload app...return {"message": "Hello World"} 那么用 uvicorn 运行命令时也需要换 uvicorn main:my_awesome_api --reload 第三步

1.5K30

使用FastAPI框架快速构建高性能的api服务

使用FastAPI可以非常快速的构建出一套高性能的api服务。下面通过实战演示一下: fastapi目前仅支持python 3.6+以上版本。...一、安装fastapiuvicorn pip install fastapi pip install uvicorn 二、新建一个main.py文件,编写如下代码 from fastapi import...read_item(item_id: int, q: str = None): return {"item_id": item_id, "q": q} 三、运行接口服务 在命令行,执行下面的命令 uvicorn...main:app --reload 四、请求接口 运行成功后在浏览器打开http://127.0.0.1:8000 ,你将在一个JSON格式响应结果: {'hello':'world'} 再次在浏览器打开...q=somequery,你将在一个如下JSON格式响应结果: {'item_id':5,'q':'somequery'} 五、可视化API文档 现在在浏览器中打开http://127.0.0.1:8000

8.4K64

Github 火热的 FastAPI 库,站在了这些知名库的肩膀上

FastAPI 正是建立在 Starlette 和 Uvicorn 的基础之上。 启发 FastAPI 地方:有一个自动 API 文档,Web 用户界面可供用户测试。...启发 FastAPI 地方: 拥有简单直观的API。 直接,直观地使用HTTP方法名称(操作)。 具有合理的默认值,功能强大的自定义。...启发 FastAPI 地方: 为API规范采用开放标准,而不是使用自定义架构。...它的工作方式是,在 Python 的文档字符串内部使用 YAML 格式的描述来为每一个函数自动生成文档。它会生成 OpenAPI 的 schemas。...它在声明中使用了自定义类型,而不仅是 Python 的标准类型,但这仍然是巨大的进步。 它也是第一个生成自定义模式的框架,该自定义模式以 JSON 声明整个 API。

5K30

FastAPI(27)- Handling Errors 处理错误

小菠萝测试笔记 # blog: https://www.cnblogs.com/poloyy/ # time: 2021/9/22 9:52 上午 # file: 21_File.py """ import uvicorn...NOT_FOUND, detail="item_id 不存在") return {"item": items[item_id]} if __name__ == "__main__": uvicorn.run...自动处理并转换为 JSON item_id = foo 的请求结果 找不到 item_id 的请求结果 添加自定义 Headers 在某些情况下,向 HTTP 错误添加自定义 Headers 会挺有用的...Exception Handlers 背景 假设有一个自定义异常 UnicornException 希望使用 FastAPI 全局处理此异常 可以使用 添加自定义异常处理程序 @app.exception_handler...唯一不同:FastAPI 的 HTTPException 支持自定义 Response Headers,在 OAuth2.0 中这是需要用到的 但需要注册(重写/重用)一个异常处理程序时,应该用 Starlette

98110

用它5分钟以后,我放弃用了四年的 Flask

写好代码以后,我们需要使用uvicorn来运行 FastApi。...首先使用pip或者pipenv安装uvicorn: pip install uvicorn pipenv install uvicorn 然后执行命令: uvicorn main:app --reload...运行命令以后,我们访问http://127.0.0.1:8000可以看到接口已经正确返回了 JSON 格式的数据: ? 那么如何定义一个带参数的 GET 方法呢?...在使用 Flask 的时候,我们需要手动验证用户 POST 提交上来的数据是什么格式的,字段对不对。 但使用 FastApi 的时候,我们只需要类型标注就能解决所有问题。...首先我们导入from pydantic import BaseModel,然后继承BaseModel实现我们允许 POST 方法提交上来的数据字段和格式: from pydantic import BaseModel

1.6K20

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券