fastapi 31

[FastAPI-36]依赖注入yield-在路径操作函数结束时,会自动关闭db连接回收资源

from fastapi import Depends, FastAPI app = FastAPI(title="依赖注入yield", description="在路径操作函数结束时,会自动关闭db连接回收资源。及时在路径函数会出现异常报错,最终也会关闭连接。") def get_db(): d ......
路径 函数 FastAPI 资源 yield

[FastAPI-35]基于对象的依赖注入

from fastapi import Depends, FastAPI app = FastAPI(title="基于对象的依赖注入", description="检查指定的文本是否在查询参数q中") class FixedContentQueryChecker: def __init__(sel ......
对象 FastAPI 35

[FastAPI-34]基于类的依赖注入-推荐使用

from fastapi import Depends, FastAPI app = FastAPI() ''' 基于类的依赖注入 ''' BOOKS = [{"id": i, "name": f"book{i}", "status": i % 4 != 0} for i in range(1, 1 ......
FastAPI 34

[FastAPI-33]依赖注入-路径装饰器-全局

1. 路径装饰器 from fastapi import FastAPI, Header, HTTPException, Depends,status app = FastAPI() def verify_token(x_token: str = Header()): if x_token != " ......
全局 路径 FastAPI 33

[FastAPI-32]依赖注入缓存

from fastapi import Depends, FastAPI app = FastAPI() ''' 依赖注入缓存现象 - 依赖条件`get_num`被依赖了两次,但是你会发现其内部打印语句只打印了一次。也就是说, 第二次使用这个依赖条件时FastAPI并没有真正执行这个函数,而是直接使 ......
缓存 FastAPI 32

[FastAPI-31]嵌套注入

from typing import Union from fastapi import Depends, FastAPI app = FastAPI() ''' 嵌套注入 - 路径函数get_name需要的形参`username_or_nickname`有依赖条件,所以FastAPI会调用 `us ......
FastAPI 31

[FastAPI=30]依赖注入

from fastapi import FastAPI, Depends app = FastAPI(title="依赖注入") ''' 依赖注入 - 共享一块相同逻辑的代码块 - 共享数据库连接 - 权限认证,登录状态认证 ''' BOOKS = [{"id": i, "name": f"book ......
FastAPI 30

[FastAPI-29]用户注册API-File字段需要在 Form之前

import typing from fastapi import FastAPI, Form, File, UploadFile from pydantic import BaseModel app = FastAPI(title="注册接口") ''' 1. 需要输入 账号 密码 头像 ''' ......
字段 API-File 用户注册 FastAPI 用户

[FastAPI-28]上传多个文件

import typing from fastapi import FastAPI, File, UploadFile app = FastAPI(title="Form表单") ''' 上传多个文件 ''' @app.post("/files",summary="通过内存缓存上传多个文件") de ......
多个 FastAPI 文件 28

[FastAPI-27]上传文件为可选项

import typing from fastapi import FastAPI, File, UploadFile app = FastAPI(title="Form表单") ''' 上传文件为可选项 ''' @app.post("/upload_large_file", summary="上传 ......
FastAPI 文件 27

[FastAPI-26]Form表单接收数据,小文件上传

from fastapi import FastAPI,Form,File,UploadFile app = FastAPI(title="Form表单") ''' Form表单接收数据 ''' @app.post("/login",summary="登录") def login(username ......
表单 FastAPI 文件 数据 Form

[FastAPI-25]博客接口

import typing from fastapi import FastAPI, Query, HTTPException, status from fastapi.encoders import jsonable_encoder from pydantic import BaseModel a ......
接口 FastAPI 博客 25

日报31

在开始学习Adapter之前我们要来了解下这个MVC模式概念: 举个例子:大型的商业程序通常由多人一同开发完成,比如有人负责操作接口的规划与设计, 有人负责程序代码的编写如果要能够做到程序项目的分工就必须在程序的结构上做适合的安排 ,如果,接口设计与修改都涉及到程序代码的改变的话,那么两者的分工就会 ......
日报

[FastAPI-24]jsonable_encoder 序列化

import typing import json from fastapi import FastAPI, Response from fastapi.encoders import jsonable_encoder from datetime import datetime from pydan ......

[FastAPI-23]响应体pydantic dict方法

import typing from fastapi import FastAPI, Response from fastapi.responses import JSONResponse from pydantic import BaseModel app = FastAPI() ''' pyda ......
pydantic FastAPI 方法 dict 23

[FastAPI-23]过滤响应数据

import typing from fastapi import FastAPI, Response from fastapi.responses import JSONResponse from pydantic import BaseModel app = FastAPI() ''' 过滤响应 ......
FastAPI 数据 23

宝塔上部署FastAPI的步骤和一些注意点

为了运维方便,选择直接用宝塔来管理python fastapi的项目,虽然直接部署可能性能更好更灵活,但是我选择了低层本,每个人的选择可能是不一样的,各有 考虑吧。 本文的大逻辑是先写一个helloworld的程序,然后再部署到服务器上 步骤一:先本地运行一个基于fastapi的helloWorld ......
宝塔 步骤 FastAPI

[FastAPI-22]响应模型-response_model

import typing from fastapi import FastAPI, Response from fastapi.responses import JSONResponse from pydantic import BaseModel app = FastAPI() ''' 响应模型 ......
response_model response 模型 FastAPI model

[FastAPI-21]响应体

from fastapi import FastAPI, Response from fastapi.responses import JSONResponse from pydantic import BaseModel app = FastAPI() class User(BaseModel): ......
FastAPI 21

[FastAPI-20]设置响应头

from fastapi import FastAPI, Response from fastapi.responses import JSONResponse from pydantic import BaseModel app = FastAPI() class User(BaseModel): ......
FastAPI 20

[FastAPI-21]响应状态码

from fastapi import FastAPI,status from pydantic import BaseModel app = FastAPI() ''' 响应状态代码 status ''' class User(BaseModel): username : str password ......
状态 FastAPI 21

[FastAPI-18]Filed请求体校验

import random from fastapi import FastAPI from pydantic import Field, BaseModel import typing app = FastAPI() ''' 请求体的每一个字段需要单独校验 name 长度最少3位 price 不少 ......
FastAPI Filed 18

[FastAPI-17]模型类嵌套

from fastapi import FastAPI, Body from pydantic import BaseModel import typing app = FastAPI() ''' { "name": "book", "description": "python", "price": ......
模型 FastAPI 17

[FastAPI-15]Body接收请求体数据

from fastapi import FastAPI, Body from pydantic import BaseModel app = FastAPI() ''' 使用Body接收请求体数据 { "user": { "username": "Tom", "password": "1234657 ......
FastAPI 数据 Body 15

[FastAPI-14]pydantic多个请求体

from fastapi import FastAPI from pydantic import BaseModel app = FastAPI() ''' 多个请求体 { "user": { "username": "string", "password": "string" }, "item": ......
pydantic 多个 FastAPI 14

[FastAPI-13]pydantic请求体接收数据

from fastapi import FastAPI from pydantic import BaseModel app = FastAPI() ''' 创建继承BaseModel的类,定义模型user 路径函数中定义形参user,类型为User 通过对象user的属性获取字段的值 客户端使用P ......
pydantic FastAPI 数据 13

[FastAPI-11]Query参数校验

import typing from fastapi import FastAPI, Query app = FastAPI() ''' 查询参数使用Query校验 类似路由转换使用Path校验 物品名称最小3位,最大10位 default=None 参数为可选项,否则为必选项 default=.. ......
参数 FastAPI Query 11

[FastAPI-10]查询参数多个相同的值

from fastapi import FastAPI, Query import typing app = FastAPI() ''' 查询多个参数值相同 ''' @app.get("/books") def books(book_id: typing.List[int] = Query()): ......
多个 参数 FastAPI 10

[FastAPI-09]查询参数默认值-Python函数默认值

from fastapi import FastAPI app = FastAPI() BOOKS = [ {"id": i, "title": f"book{i}"} for i in range(1, 11) ] ''' 查询参数的默认值 ''' @app.get("/books") # 默认为 ......
函数 参数 FastAPI Python 09

[FastAPI-08]Path校验

from fastapi import FastAPI,Path app = FastAPI() # Path校验 ''' 限制接口输入的数字大小限制 100-1000 限制字符串输入的字符数量 3-8位 ''' @app.get("/number/{num}") def number(num:in ......
FastAPI Path 08