首页 > 其他分享 >first step

first step

时间:2024-12-10 10:31:53浏览次数:4  
标签:get FastAPI app 路径 step fastapi async first

创建并运行一个最简单的fastapi应用

最简单的 FastAPI 文件可能像下面这样:

from fastapi import FastAPI

app = FastAPI()


@app.get("/")
async def root():
    return {"message": "Hello World"}

将期复制到main.py文件中,运行实时服务器:

uvicorn main:app --reload

INFO:     Will watch for changes in these directories: ['D:\\MyCode\\TestProject\\fastApiProject']
INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO:     Started reloader process [12540] using WatchFiles
INFO:     Started server process [20932]
INFO:     Waiting for application startup.
INFO:     Application startup complete.

nvicorn main:app --reload命令含义如下:

  • main: main.py文件(一个python模块)
  • app: 在main.py文件中通过app=FastAPI()创建的对象,app名称可以是任意符合规则的命名
  • reload: 让服务器在更新代码后重新启动,仅在开发时使用该选项

INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) 显示fastapi应用在本机中提供的访问地址,通过该url即可访问应用

创建一个路径操作

这里的路径是指url中从第一个/起的后半部分
所以在url中https://example.com/items/foo路径会是:/items/foo

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

在开发api时,路径是用来分离关注点和资源的主要手段

常见的HTTP请求方法
POST:创建数据
GET:读取数据。
PUT:更新数据。
DELETE:删除数据。
更少见的请求方法:
OPTIONS
HEAD
PATCH
TRACE
在HTTP协议中可以使用以上一种或多种方法与每个路径进行通信


定义一个路径操作装饰器

from fastapi import FastAPI

app = FastAPI()


@app.get("/")
async def root():
    return {"message": "Hello World"}

@app.get("/") 告诉 FastAPI 在它下方的函数负责处理如下访问请求:

  • 请求路径为/
  • 使用get操作

@something 语法在 Python 中被称为「装饰器」。
像一顶漂亮的装饰帽一样,将它放在一个函数的上方(我猜测这个术语的命名就是这么来的)。
装饰器接收位于其下方的函数并且用它完成一些工作。
在我们的例子中,这个装饰器告诉 FastAPI 位于其下方的函数对应着路径 / 加上 get 操作。
它是一个「路径操作装饰器」。

其他的操作类似:

  • @app.post()
  • @app.put()
  • @app.delete()
    以及更少见的:
  • @app.options()
  • @app.head()
  • @app.patch()
  • @app.trace()

定义路径操作函数

  • 路径:是 /。
  • 操作:是 get。
  • 函数:是位于「装饰器」下方的函数(位于 @app.get("/") 下方)。
from fastapi import FastAPI

app = FastAPI()


@app.get("/")
async def root():
    return {"message": "Hello World"}

这是一个 Python 函数。
每当 FastAPI 接收一个使用 GET 方法访问 URL「/」的请求时这个函数会被调用。
在这个例子中,它是一个 async 函数。也可以定义为常规函数而不使用async def

如果不知道两者区别可以查看并发 async / await

返回内容

from fastapi import FastAPI

app = FastAPI()


@app.get("/")
async def root():
    return {"message": "Hello World"}

可以返回一个dict、list、str、int一样的单个值
也可以返回Pydantic模型
还有需要其他将会自动转换为Json的对象和模型

以上内容均根据fastapi官方文档学习记录fastapi

标签:get,FastAPI,app,路径,step,fastapi,async,first
From: https://www.cnblogs.com/T-Ajie/p/18596820

相关文章

  • (在线三维参数化建模)网页三维CAD中加载和保存STEP模型
    前言1.在网页CAD中进行三维建模的时候经常需要导入和导出STEP格式的三维模型文件,本文将介绍如何使用`mxcad3d`来导入导出STEP三维模型。 2.首先我们需要学习`mxcad3d`的基本使用方法,可以通过官方的入门教程来搭建一个最基本的项目模板,快速入门、 API接口的使用说明。代码......
  • 三十七 Home Assistant 开发hass.io插件流程&First Demo
    开发插件Hass.io的插件允许用户扩展HomeAssistant的功能。这可以是运行一个HomeAssistant能够与之集成的应用程序(如MQTT代理),或者通过Samba共享配置以便于从其他计算机轻松编辑。插件可以通过HomeAssistant中的Hass.io面板进行配置。在底层,插件是发布在DockerHub上的Do......
  • ThreeJS入门(182):THREE.FirstPersonControls 知识详解,示例代码
    作者:还是大剑师兰特,曾为美国某知名大学计算机专业研究生,现为国内GIS领域高级前端工程师,CSDN知名博主,深耕openlayers、leaflet、mapbox、cesium,webgl,ThreeJS,canvas,echarts等技术开发,欢迎加微信(gis-dajianshi),一起交流。查看本专栏目录-本文是第182篇入门文章......
  • CMakeTutorial_Step1_CMakeLists.txt
    #TODO1:SettheminimumrequiredversionofCMaketobe3.10cmake_minimum_required(VERSION3.10)#TODO2:CreateaprojectnamedTutorialproject(TutorialVERSION1.0)#TODO7:Settheprojectversionnumberas1.0intheaboveprojectcommand#Wh......
  • ::first-letter有什么应用场景?
    ::first-letter伪元素在前端开发中有多种应用场景,主要用于设置一个文本块的首字母样式。以下是一些常见的应用:首字下沉(DropCaps):这是::first-letter最经典的应用场景。可以将段落首字母放大并下沉几行,营造一种书籍或杂志的排版效果,提升视觉吸引力和阅读体验。突出......
  • 洛谷题单指南-线段树-P6492 [COCI2010-2011#6] STEP
    原题链接:https://www.luogu.com.cn/problem/P6492题意解读:一个序列,初始L,可以指定一个位置修改,L修改成R,R修改成L,可以令L=0,R=1,然后每次修改后输出序列最长不连续0、1(0/1交替出现)的长度。解题思路:序列支持单点修改(0->1,1->0),区间查询(最长不连续0、1长度),因此可以采用线段树,不需要懒标......
  • 对SqlSugar的Code First建库索引进行介绍
    通过对类增加特性的方式实现的数据块列的索引进行设计,具体代码中进行说明,主要是给出一个简单案例方便大家使用:[SugarIndex("index_Order_Id",nameof(Order.id),OrderByType.Asc)]//普通索引--非聚集索引[SugarIndex("index_Order_OrderDate",nameof(Order.Order......
  • ORB-SLAM2 ----- LocalMapping::ComputeF12和ORBmatcher::CheckDistEpipolarLine
    文章目录一、函数意义二、LocalMapping::ComputeF12()1.函数讲解2.函数代码三、ORBmatcher::CheckDistEpipolarLine()1.函数讲解2.函数代码四、总结一、函数意义这两个函数在LocalMapping::CreateNewMapPoints()被调用,之所以单独拿出来讲,是因为这两个函都是计算的......
  • [C++][MSVC][Error] __acrt_first_block == header
    1简介当你使用MSVC编译器时遇到的__acrt_first_block==header错误通常与内存管理问题有关,特别是涉及到C运行时库(CRT)。这个错误通常是由于不同模块(如DLL和EXE)在使用不同CRT时分配和释放内存的方式不匹配引起的。具体来说,当使用/MTd标志时,每个模块都会链接到其......
  • Step-04 预训练基础模型
    一、B所谓预训练就是“模型上9年义务教育”即学习基本的语言范式!使用未标记数据是因为数据丰富,全国哪那么多专家?二、EPre-TraineModel的本质就是:通过大规模无标注数据进行初步训练,以学习到通用的特征表示,然后再通过少量标注数据进行微调,以适应特定任务,从而实现迁移学......