fastapi学习记录

今天看了点fastap,简单记录下,fastapi是一个python下的后端框架。
参考学习网站菜鸟教程

安装

pip install fastapi
pip install "uvicorn[standard]"

安装好了以后就可以直接使用,最主要的使用方式就是写接口嘛,get,post接口,记录两个例子,

from fastapi import FastAPI

#应用名字就是app
app = FastAPI()

#标记下面这个函数的访问路径就是ip/
@app.get("/")
def read_root():
    return {"Hello": "World"}

一、无参get
注意我的以上代码放在我的main.py里面,所以是main:app,如果你放到其他文件里面要改main

uvicorn main:app --reload

然后就成功
在这里插入图片描述

二、传参get

from typing import Union

#Union代表q可以是str也可以什么都不传
@app.get("/items/{item_id}")
def read_item(item_id: int, q: Union[str, None] = None):
    return {"item_id": item_id, "q": q}

在这里插入图片描述

三、POST

from pydantic import BaseModel

class Item(BaseModel):
    name: str
    price: float
    is_offer: Union[bool, None] = None

@app.put("/items/{item_id}")
def update_item(item_id: int, item: Item):
    return {"item_name": item.name, "item_id": item_id}

然后在127.0.0.1:8000/docs接口文档下测试

在这里插入图片描述

四、其他
4.1 一般fastapi接口接收字典时使用的类要继承pydantic的BaseModel

4.2 使用Form可以检测是否符合标准,在定义model的时候使用

from pydantic import BaseModel, Field
class Item(BaseModel):
    name: str = Field(..., title="Item Name", max_length=100)
    description: str = Field(None, title="Item Description", max_length=255)
    price: float = Field(..., title="Item Price", gt=0)

4.3 使用fastapi包下的HTTPException可以根据传入的数据返回状态码

from fastapi import HTTPException
@app.get("/items/{item_id}")
def read_item(item_id: int):
    if item_id == 42:
        raise HTTPException(status_code=404, detail="Item not found")
    return {"item_id": item_id}

4.4 fastapi文件上传功能

from fastapi import FastAPI, File, UploadFile
app = FastAPI()
# 路由操作函数
@app.post("/files/")
async def create_file(file: UploadFile = File(...)):
    return {"filename": file.filename}

相关推荐

  1. 【Python】FastAPI学习记录(二)

    2024-03-29 23:22:05       66 阅读
  2. 学习记录————

    2024-03-29 23:22:05       66 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-29 23:22:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-29 23:22:05       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-29 23:22:05       82 阅读
  4. Python语言-面向对象

    2024-03-29 23:22:05       91 阅读

热门阅读

  1. 学习没有速成可言

    2024-03-29 23:22:05       34 阅读
  2. 脏牛提权(靶机复现)

    2024-03-29 23:22:05       38 阅读
  3. Mybatis plus(一)

    2024-03-29 23:22:05       42 阅读
  4. 深入探索Python异步编程:从原理到实践

    2024-03-29 23:22:05       36 阅读
  5. spring概念 及 SpringIoc 、DI

    2024-03-29 23:22:05       45 阅读
  6. Vue 组件和插件:探索细节与差异

    2024-03-29 23:22:05       44 阅读
  7. 代码随想录Day37

    2024-03-29 23:22:05       45 阅读
  8. AIST++ 笔记

    2024-03-29 23:22:05       38 阅读
  9. 老程序员不讲武德

    2024-03-29 23:22:05       41 阅读
  10. linux快速入门

    2024-03-29 23:22:05       39 阅读
  11. Vue 3:前端开发的新时代

    2024-03-29 23:22:05       33 阅读
  12. ntp服务器搭建

    2024-03-29 23:22:05       38 阅读