首页 > 其他分享 >fastapi

fastapi

时间:2024-04-21 15:44:32浏览次数:23  
标签:请求 fastapi 路径 item 参数 items FastAPI

FastAPI

1.restful接口开发规范

 

2.quick start

 

async:表示函数内部可以使用异步

 使程序可以直接运行,需要导入uvicorn

port:端口号,debug:开发模式,reload

 

3.路径操作

路径指的是 URL 中从第一个 / 起的后半部分。

例如:https://example.com/items/foo的路径是/items/foo

「路径」也通常被称为「端点」或「路由」。

@something 语法在 Python 中被称为「装饰器」。

1>路径操作装饰器

 

2>路径操作装饰器参数

1.

 

 

2.

 

3.

 

 

表示废弃

4.include_router

 

5.请求与响应

1>路径参数
 from fastapi import FastAPI
 app = FastAPI()
 @app.get("/items/{item_id}")
 async def read_item(item_id: int):
     return {"item_id": item_id}

FastAPI 通过类型声明自动解析(将HTTP请求中的字符串转换为python数据类型)请求中的数据。

2>查询参数

声明的参数不是路径参数时,路径操作函数会把该参数自动解释为查询参数,就是url?后面的用&分割的。

类型要求

 from fastapi import FastAPI
 ​
 app = FastAPI()
 ​
 fake_items_db = [{"item_name": "Foo"}, {"item_name": "Bar"}, {"item_name": "Baz"}]
 ​
 ​
 @app.get("/items/")
 async def read_item(skip: int = 0, limit: int = 10):
     return fake_items_db[skip : skip + limit]

默认参数

 

类型注解:typing

 

3>请求体数据

 

有默认值,Field(default=0,gt=0,lt=100)限定了参数范围是0—100

Field(regex=“^a")限定名字以a开头

 

类型嵌套

 

4>form表单

Fastapi可以使用Form组件来接受表单数据

 

username不再是查询参数,接收时按照请求体中的Form表单进行解析

5>文件上传

 

6>Request对象

 

7>静态文件的请求

静态文件:不是由web服务器生成的文件

动态文件:服务器生成的文件

 

directory后面的必须与目录下的文件名保持一致

服务器访问静态文件:

 

8>响应模型相关参数

reponse_model:声明return响应体的模型

实现注册功能:

 

reponse_model_exclude_unset

排除未设置的

![

](C:\Users\刘丹\AppData\Roaming\Typora\typora-user-images\image-20240409184759794.png)

reponse_model_exclude_defaults:排除默认的

reponse_model_exclude_none:排除值为空的

include和exclude

后面跟字典

9>api接口与restful规范

api接口:应用程序对外提供了一个操作数据的入口,这个入口可以是一个函数或类方法,也可以是一个url地址或者一个网络地址,当客户端调用这个入口,应用程序则会执行对应代码操作,给客户端完成相应功能。

restful规范

REST:客户端与Web服务器之间进行交互时,使用HTTP协议中的4个请求方法代表不同的动作。

 

 

 

 

标签:请求,fastapi,路径,item,参数,items,FastAPI
From: https://www.cnblogs.com/liudan050501/p/18149012

相关文章

  • Docker-compose部署项目(Fastapi项目为例)
    1.有Dockerfile文件进行部署,Dockerfile内容参考FROM127.0.0.1:5000/py3.10-1COPYrequirements.txt.RUNpipinstall-ipip源-rrequirements.txt2.Docker-compose.yml文件env_file指定环境变量,看项目是否使用env环境变量volumes挂在工作目录映射,工作目录更改代码容......
  • Docker使用Dockerfile部署Fastapi应用
    1#使用官方的Python运行时作为基础镜像2FROMpython:3.9-slim34#设置工作目录5WORKDIR/app67#复制应用程序的依赖文件到工作目录8COPYrequirements.txt.910#安装应用程序的依赖11RUNpipinstall--no-cache-dir-rrequirements.txt12......
  • FastAPI-MySQL-Cookie代码实现
    连接数据库fromsqlalchemyimportcreate_enginefromsqlalchemy.ext.declarativeimportdeclarative_basefromsqlalchemy.ormimportsessionmakerfromurllib.parseimportquote_pluspassword='123456'encoded_password=quote_plus(password)SQLALCHEM......
  • FastAPI: 测试lifespan特性(转)
    addbyzhj:实践出真知,文章写得真不错,自己测试这些条件原文:FastAPI:experimentlifespanfeatureInitInFastAPI,oneofwayscreatingasharedresourceandlivingaslongasapplicationisupisusing lifespan featureinFastAPI.Thislifespanfeaturecandoc......
  • 【大模型应用开发-FastAPI框架】(五)FastAPI 如何通过Poetry运行FastAPI应用程序
    一、概述FastAPI是一个现代、快速(高性能)的Web框架,用于构建API。Poetry是一个Python的依赖管理和打包工具,可以帮助我们更有效地管理项目的依赖和环境。在本文中,我们将介绍如何使用Poetry来运行FastAPI应用程序。二、安装FastAPI和Poetry在开始之前,我们需要先安装FastAPI和P......
  • 在docker部署fastapi宝塔里使用nginx反代套上cloudflare获取请求的真实ip
    在docker部署fastapi宝塔里使用nginx反代套上cloudflare获取请求的真实ip背景是这样的,我使用docker部署了一个fastapi部署了一个应用,使用request.client.host获取请求的来源ip,但是获取到的都是172.17.0.1这显然是不是正常的,是docker网络下的ip,所以我们需要在nginx进行设置转发......
  • Fastapi和requests文件的下载和上传
     介绍FastApi搭建一个简单下载和上传的服务,通过接口将文件保存在服务器上,而通过requests库子在本机中批量从服务器上传和下载文件FastApi搭建服务#application.py"""fastapi+request上传和下载功能"""fromfastapiimportFastAPI,UploadFilefromfastapi.respon......
  • 使用 Pyqt5 GUI 页面请求 FastAPI 后端 API,实现逻辑功能
    使用PyQt5+FastAPI+SQLAlchemy+Redis+Celery做一个登录注册页(四)本文将介绍用PyQt5+FastAPI+SQLAlchemy+Redis+Celery做的一个登录注册页,使用邮箱接收验证码,本文介绍是前后端分离的实现方式,厚后端使用FastAPI+SQLAlchemy+Redis+Celery,你可以将PyQt5改为PySide2以获得更宽松......
  • FastApi中使用ORM
    1、介绍在应用的开发过程中肯定会使用到数据库,FastApi中是一个异步的web框架配合异步的ORMTortoise能让FastAPI的并发性能,而且TortoiseORM是受DjangoORM框架启发的,从DjangoORM移动TortoiseORM就很平滑。#安装pipinstallfastapipipinstalltortoise-orm2、项目......
  • 使用FastAPI+SQLAlchemy+Redis+Celery 编写一个完整的用户登录验证API
    使用PyQt5+FastAPI+SQLAlchemy+Redis+Celery做一个登录注册页(三)本文将介绍用PyQt5+FastAPI+SQLAlchemy+Redis+Celery做的一个登录注册页,使用邮箱接收验证码,本文介绍是前后端分离的实现方式,厚后端使用FastAPI+SQLAlchemy+Redis+Celery,你可以将PyQt5改为PySide2以获得更宽松......