FastAPI
fastapi后台任务模块<BackgroundTasks>源码理解
该文档主要对fastapi的后台模块《BackgroundTasks》一些源码的理解, 这样也可以加深理解异步及后台任务处理的理解。 使用导入例子: from fastapi import BackgroundTasks from fastapi import BackgroundTasks, Fa ......
flask初体验和fastapi初体验
0. flask的介绍 # python 界的web框架 -Django:大而全,快速开发,公司内部项目 -Flask:小而精,不具备web开发好多功能,丰富的第三方插件 -FastApi:异步框架,主要为了做前后端分离接口 -Sanic:异步框架,只支持python3.6 及以上,性能比较高 -T ......
FastAPI初体验
官网🔗https://fastapi.tiangolo.com/zh/ FastAPI 是一个用于构建 API 的现代、快速(高性能)的 web 框架,使用 Python 3.6+ 并基于标准的 Python 类型提示。 自带接口文档,使用swagger UI 安装(需要一个 ASGI 服务器,生 ......
fastapi 中文档显示空白
原因: fastapi swagger js css 都是写死在代码中的,他的正常传参修改地址不没有打开的,所以不能用正常的方式修改他的内置js css 路径: 原始路径为:![](https://img2023.cnblogs.com/blog/1689270/202307/1689270-202 ......
fastapi文件上传下载
```python import os import time from fastapi import APIRouter, File, UploadFile from fastapi.responses import FileResponse router = APIRouter(tags=['U ......
使用fastapi background task踩的第一个坑
### 场景复原(这份代码可以和我之前的业务产生同样的效果) ```python async def task(): print("1......") time.sleep(5) print("ok") @router.post("/1") async def crate(background_ta ......
fastapi框架docs文档Responses去掉默认的异常响应422Validation Error
fastapi框架原生docs的Responses中会有个默认的422Validation Error响应,但大多数实际开发应该不需要,如何去除呢? 我用的方法是用猴子补丁重写fastapi.openapi.util里的get_openapi_path方法,去掉加入默认422的那段代码即可,下面这些 ......
FastAPI提供了多种安全性机制,包括OAuth2、API密钥等。例如,我们可以使用API密钥保护我们的API
```python from fastapi.security import APIKeyHeader api_key_header = APIKeyHeader(name="api_key") @app.get("/items/{item_id}", response_model=Item) de ......
fastapi框架
@fastapi框架 fastapi,一个用于构建 API 的现代、快速(高性能)的web框架。 fastapi是建立在Starlette和Pydantic基础上的,Pydantic是一个基于Python类型提示来定义数据验证、序列化和文档的库。Starlette是一种轻量级的ASGI框架/工具包, ......
fastapi ResponseModel
```python from pydantic import BaseModel class ResponseModel(BaseModel): code: int = 200 msg: str = "" success: bool = True data: dict = None class Ta ......
Nginx conf for fastapi backend project with variables
# 带变量的nginx后端项目配置 不同的api项目,挂载不同的域名,只需在配置夹里,修改文件名(建议文件名和域名保持一致)、修改端口号、修改第5行第22行backend_api后面的编号、修改第11行的项目名、可能还需要修改第12行的文件夹名、修改第14行的域名 $ cat /etc/nginx/ ......
Celery with FastAPI and TortoiseORM
API server using: `fastapi+tortoise-orm+postgresql+redis+supervisor+nginx` There are some period tasks and async tasks that will run in `celery+rabbit ......
学习FASTAPI
弯弯曲曲的学习之路 学了那么多语言,都是半途而废。包括java,Javascript,go,php,ruby等等乱七八糟。 除了c的自由和pascal的优美,FoxPro简单,其他都似懂非懂入不了法眼。主要原因还是自己能力和努力不够,真的太懒了。 早闻Python胶水,摇摇晃晃,居然有感觉进去了。 ......
fastapi 异步应用
# 定义一个专门创建事件循环loop的函数,在另一个线程中启动它 def start_loop(loop): asyncio.set_event_loop(loop) loop.run_forever() @app.get("/addr") def index(adcode: str = None, ......
FastAPI跨域配置
## FastAPI跨域配置 ```python from fastapi import FastAPI import uvicorn from fastapi.middleware.cors import CORSMiddleware #解决跨域问题 import os import redis ......
Python|通过FastAPI开发一个快速的WebAPI项目
## 前言 Python 如此受欢迎的众多原因之一是 Python 有大量成熟和稳定的库可供选择: - 网页开发有:[Django](https://link.juejin.cn?target=https%3A%2F%2Fwww.djangoproject.com%2F) 和 [Flask](htt ......
FastAPI|的路由介绍及使用
本文将介绍如何使用 Router 路由处理 FastAPI 中的请求。同时以我自己开发系统的后端为例进行FastAPI使用的说明。 ## 什么是路由 路由 Router 就像是一个流水线上的线长,协调生产,下达命令给不同的组长进行分工,然后执行基本的任务。路由器的工作目的是,在团队中工作时,您可能必 ......
【Python】如何在FastAPI中使用UUID标记日志,以跟踪一个请求的完整生命周期
## 为什么要使用uuid标记日志? 在分布式系统中,一个请求可能会经过多个服务,每个服务都会生成自己的日志。如果我们只使用普通的日志记录,那么很难将这些日志串联在一起,以至难以跟踪一个请求的完整生命周期。 如果能够使用uuid标记日志,为每个请求生成一个唯一的uuid,且这个日志可以在不同的系统间 ......
内网安装fastapi引起的一系列问题解决
# 1. pip直接安装fastapi 本地初始Python环境:Python3.7.5 问题解决后使用Python环境:Python3.8.9 ## 1.1 安装报错 - 国内源报错,https请求超时; - 包冲突报错,如图所示 ![img_v2_398962e7-1b9a-4edf-b537- ......
fastapi
FastAPI 是一个基于 Python 的现代、快速(高性能)的 Web 框架,用于构建 Web API。它具有简洁的语法、自动的 API 文档生成和交互式测试界面,以及高性能的异步支持 ......
VUE+FastAPI结合高德地图API做一个旅游推荐系统
> 最近一个月没有更新博客,去写了一个系统,包含前台和后台,还有后端的API。前后台使用VUE+高德地图API,后台使用FastAPI,实现了一些基本的功能。 ## 前台部分 因为我也是前端初学者,写的比较乱 #### 基础功能 - [x] 用户登陆注册功能 - [x] 搜索功能 - [x] 主页照 ......
fastapi最简单使用示例
直接上代码了 from fastapi import FastAPI, Request import uvicorn app = FastAPI() @app.post("/") async def create_item(request: Rquest): json_post_raw = awai ......
fastapi框架
@fastapi框架 官方:https://fastapi.tiangolo.com/zh/ fastapi,一个用于构建 API 的现代、快速(高性能)的web框架。 fastapi是建立在Starlette和Pydantic基础上的,Pydantic是一个基于Python类型提示来定义数据验证、 ......
fastapi篇(六)
关于请求体参数、路径参数、请求参数的声明 函数参数按照如下的顺序进行识别匹配: (1)、如果这个参数已经在路径中被声明过,那么它就是一个路径参数。 (2)、如果这个参数的类型是单类型的(如str、float、int、bool等),那么它就是一个请求参数。 (3)、如果这个参数的类型是Pydantic ......
fastapi篇(五)
get请求的请求参数 1、如果函数里的参数不是路径参数的一部分,那么这样的参数就自动被解释为请求参数。 2、请求参数就是URL中问号('?')后面以'&'间隔开的键值对,它们是URL的一部分,并且参数类型都是字符串类型。 @app.get("/str") def get_str(item: str ......
fastapi篇(四)
路径参数声明 借助类型注解。fastapi会自动对request前端请求参数实现自动转换 @app.get("/str/{item}") def get_str(item: str): print(item, type(item)) return "只有永不遏止的奋斗,才能使青春之花,即便是凋谢,也 ......
fastapi篇(三)
pydantic 在之前python进阶主题文章中,针对这个三方模块有过简单的介绍,主要用于数据校验,在fastapi中,正式发挥了他这一长处 from pydantic import BaseModel, ValidationError class CreateRequest(BaseModel) ......
fastapi篇(二)
尝试创建一个新的web服务 1、接口展示 import uvicorn from fastapi import FastAPI from fastapi.staticfiles import StaticFiles app = FastAPI() app.mount('/static', Stati ......
Fastapi之OAuth2认证
1.基于用户名密码认证 from typing import Optional from fastapi import APIRouter, Depends, HTTPException from fastapi.security import OAuth2PasswordBearer, OAuth ......
Fastapi之微服务Consul应用注册发现
import uvicorn from fastapi import FastAPI app = FastAPI() def register(server_name, ip, port): c = consul.Consul(host="127.0.0.1", port=8500) # consu ......