再次声明下,什么是路径操作 @app.get() @app.post() @app.put() @app.delete() ... 这些就是路径操作 那路径操作的配置,其实就是函数参数 为什么要讲配置 可以在 Swagger API 文档中显示这些参数,友好的显示相关信息 来看看有什么配置 response_model 相关的前面已经讲过了
前言 许多情况下,需要向客户端返回一些特定的错误,比如 客户端没有足够的权限进行该操作 客户端无权访问该资源 客户端尝试访问的项目不存在 HTTPException 介绍 要将带有错误的 HTTP 响应(状态码和响应信息)返回给客户端,需要使用 HTTPException HTTPException 是一个普通的 exc
jsonable_encoder 在实际应用场景中,可能需要将数据类型(如:Pydantic 模型)转换为与 JSON 兼容的类型(如:字典、列表) 比如:需要将数据存储在数据库中 为此,FastAPI 提供了一个 jsonable_encoder() 函数 jsonable_encoder 实际上是 FastAPI 内部用来转换数据的,但它在许多其他场景中很有用
FastAPI 的依赖注入 FastAPI 有一个非常强大但直观的依赖注入系统 它被设计为非常易于使用,并且使任何开发人员都可以非常轻松地将其他组件与 FastAPI 集成 什么是依赖注入 在编程中,为保证代码成功运行,先导入或声明其所需要的【依赖】,如子函数、数据库连接等等 它和钩子函
依赖项函数返回 dict 上一篇依赖注入文章中讲的依赖项函数返回值类型是 dict #!usr/bin/env python # -*- coding:utf-8 _*- """ # author: 小菠萝测试笔记 # blog: https://www.cnblogs.com/poloyy/ # time: 2021/9/24 1:08 下午 # file: 25_dependency.py """ from typing imp
使用 typing 中的 List、Set、Tuple 的栗子 from typing import Optional import uvicorn from fastapi import FastAPI, Body from typing import List, Tuple, Set app = FastAPI() @app.put("/items/{item_id}") async def update_item( list_: List[int] =
前言 上一篇有讲到将参数类型指定为 Pydantic Model,这样 FastAPI 会解析它为一个 Request Body 那单类型(int、float、str、bool...)参数可以成为 Request Body 的一部分吗?答案是可以的 通过 Body 函数即可完成,和 Path、Query 有异曲同工之妙 文章跳转 Query Path Request Body
前言 目前的接口基本都是通过发送请求体(Request Body)的方式来传递请求数据 在 FastAPI,提倡使用 Pydantic 模型来定义请求体 这篇文章会详细讲不使用 Pydantic 和 使用 Pydantic 时的场景 注意 请求体并不是只有 POST 请求有,只不过更常见 在 PUT、DELETE、PATCH 请求中都可以
可选参数 上一篇文章讲过查询参数可以不是必传的,可以是可选参数 from fastapi import FastAPI from typing import Optional import uvicorn app = FastAPI() # 必传参数+可选参数 @app.get("/items") async def read_item(item_id: str, name: Optional[str] = None): re
前言 上一篇讲了可以为查询参数添加额外的校验和元数据,Query 库:https://www.cnblogs.com/poloyy/p/15306809.html 这篇讲可以为路径查询添加额外的校验和元数据,Path 库 Path 可以为路径参数添加额外的校验和元数据,跟 Query 的参数是一毛一样的 元数据 Path 也可以添加元
什么是查询参数? http://127.0.0.1:8000/get?name=xxx&age=18 http://127.0.0.1:8000/get?age=18&name=xxx 在 url 的 ? 后面跟着的一组或多组键值对,就是查询参数 FastAPI 的查询参数 当声明了不属于路径参数以外的其他函数参数时, FastAPI 会自动解析为查询参数 和路径参数不同
fastapi是高性能的web框架。他的主要特点是:- 快速编码- 减少人为bug- 直观- 简易- 具有交互式文档 - 高性能 - 基于API的开放标准 支持python 3.6版本。 安装 pip install fastapi 安装部署包 pip install uvicorn 开始开发。 from fastapi import FastAPI app =
之前的文章已经介绍了如何安装,以及简单的使用,这篇文章呢,我们就不去分享如何安装对应的包了。 我们如何去编写呢,其实很简单,按照下面的步骤,一个简单的基于fastapi的接口就编写完毕。 首先:创建一个main.py 第一步:导入 from fasta
安装 FastAPI pip install fastapi # 将来需要将应用程序部署到生产环境可以安装 uvicorn 作为服务器 pip install uvicorn 最简单的代码栗子 from fastapi import FastAPI app = FastAPI() @app.get("/") async def root(): return {"message": "Hello World"}
后端使用 FastAPI,前端使用 Vue 来完成登录过程的用 jwt token 实现登录验证功能。 一、后端 FastAPI 1.1 设计用户表 本文采用的是 MySQL 数据库。 首先连接 MySQL 数据库,关于 MySQL 数据库的连接可参见另外一篇文章:FastAPI 连接 MySQL 用户的数据库表如下: class User(Base):
fastapi_cache2安装 瞅瞅python 的版本必须要3.7以上 才能安装成功 如果python是3.7以上 pip install 安装不成功 则可以在 http://mirrors.aliyun.com/pypi/simple/fastapi-cache2/ 看看路径 然后执行 pip install xxx.whl 就可以了,其他的包也可以类似执行
fastapi是高性能的web框架。他的主要特点是: 快速编码 减少人为bug 直观 简易 具有交互式文档 基于API的开放标准(并与之完全兼容):OpenAPI(以前称为Swagger)和JSON Schema。 1、安装 pip install fastapi pip install uvicorn 2、项目简单试例 from fastapi import FastAPI # 引入
这段时间一直在做flask迁移到fastapi的工作,基于现在的Flask项目使用到的功能实现了一套脚手架项目,项目集成了sqlalchemy2(1.4+)、JWT Auth、websocket、i18n等常用功能,目录结构也比较简单,也封装了一系列的web开发过程中会用到的工具,欢迎大家给项目提提建议。 https://github.com/g
1 @fetch.get('/export') 3 def fl_query(db: Session = Depends(get_db), bank_name=None, acc_code=None, file_type=None, prod_codes=None, 4 prod_names=None, status=None, page=1, rows=10): 5 header = ['账户号', '项目
1 ''' 2 @author:invoker 3 @project:fastapi202108 4 @file: chapter036.py 5 @contact:invoker2021@126.com 6 @descript: 7 @Date:2021/8/6 21:50 8 @version: Python 3.7.8 9 ''' 10 from fastapi import APIRouter,Cookie,Header
一、请求为表单时的写法 使用了from fastapi import Form Form是对表单的每个字段做验证 1 ''' 2 @author:invoker 3 @project:fastapi202108 4 @file: chapter043.py 5 @contact:invoker2021@126.com 6 @descript: 7 @Date:2021/8/6 17:53 8 @version: Python 3.7.8 9
一、手动填写返回状态码 1 ''' 2 @author:invoker 3 @project:fastapi202108 4 @file: chapter042.py 5 @contact:invoker2021@126.com 6 @descript: 7 @Date:2021/8/6 16:58 8 @version: Python 3.7.8 9 ''' 10 from fastapi import APIRouter
1.被装饰的函数中的入参名称若在修饰器参数(请求路径)中以大括号方式展示,则为路径参数 @app03.get('/path/{parameters}') async def path_params01(parameters:str): return { "msg":parameters} 2.路径参数可以是枚举类型 # CityName类继承了str和Enum枚举类,str表示枚举的
FastAPI的demo 1 ''' 2 @author:invoker 3 @project:fastapi202108 4 @file: hello_world.py 5 @contact:invoker2021@126.com 6 @descript: 7 @Date:2021/8/5 11:31 8 @version: Python 3.7.8 9 ''' 10 from fastapi import Fa
一、使用Python的类型注释type hints 来进行数据校验 和 setting管理。 1 ''' 2 @author:invoker 3 @project:fastapi202108 4 @file: pydantic_tutorial.py 5 @contact:invoker2021@126.com 6 @descript: 7 @Date:2021/8/4 18:05 8 @version: Python 3.7.8 9 '