avatar

RWO.cc

读一次写一次

  • 首页
  • 搭建手册
  • 笔记
  • 短视频
  • 关于
  • 🌈200粉丝🌈
Home Fastapi 简单示例
文章

Fastapi 简单示例

Posted 2024-05-9 Updated 2024-05- 9
By RWO.
6~8 min read

简单示例

from fastapi import FastAPI, HTTPException
from pydantic import BaseModel

app = FastAPI()

# 模拟数据库
db = []

# 请求体模型
class Item(BaseModel):
    name: str
    price: float

# 创建商品
@app.post("/items/")
def create_item(item: Item):
    db.append(item)
    return {"message": "Item created successfully"}

# 获取所有商品
@app.get("/items/")
def get_items():
    if not db:
        raise HTTPException(status_code=404, detail="No items found")
    return db

# 根据名称获取商品
@app.get("/items/{name}")
def get_item_by_name(name: str):
    for item in db:
        if item.name == name:
            return item
    raise HTTPException(status_code=404, detail="Item not found")

# 更新商品价格
@app.put("/items/{name}")
def update_item_price(name: str, price: float):
    for item in db:
        if item.name == name:
            item.price = price
            return {"message": "Item price updated"}
    raise HTTPException(status_code=404, detail="Item not found")

# 删除商品
@app.delete("/items/{name}")
def delete_item(name: str):
    for item in db:
        if item.name == name:
            db.remove(item)
            return {"message": "Item deleted"}
    raise HTTPException(status_code=404, detail="Item not found")

不需要数据库操作:

from fastapi import FastAPI, HTTPException
from pydantic import BaseModel

app = FastAPI()

# 请求体模型
class Item(BaseModel):
    name: str
    price: float

# 创建商品
@app.post("/items/")
def create_item(item: Item):
    return {"message": "Item created successfully", "item": item}

# 获取所有商品
@app.get("/items/")
def get_items():
    return {"message": "Get all items"}

# 根据名称获取商品
@app.get("/items/{name}")
def get_item_by_name(name: str):
    return {"message": f"Get item by name: {name}"}

# 更新商品价格
@app.put("/items/{name}")
def update_item_price(name: str, price: float):
    return {"message": f"Update item price: {price}"}

# 删除商品
@app.delete("/items/{name}")
def delete_item(name: str):
    return {"message": f"Delete item: {name}"}

简单完整:

from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
import uvicorn

app = FastAPI()

# 请求体模型
class Item(BaseModel):
    name: str
    price: float

# 创建商品
@app.post("/items/")
def create_item(item: Item):
    return {"message": "Item created successfully", "item": item}

# 获取所有商品
@app.get("/items/")
def get_items():
    return {"message": "Get all items"}

# 根据名称获取商品
@app.get("/items/{name}")
def get_item_by_name(name: str):
    return {"message": f"Get item by name: {name}"}

# 更新商品价格
@app.put("/items/{name}")
def update_item_price(name: str, price: float):
    return {"message": f"Update item price: {price}"}

# 删除商品
@app.delete("/items/{name}")
def delete_item(name: str):
    return {"message": f"Delete item: {name}"}

if __name__ == "__main__":
    uvicorn.run(app, host="localhost", port=8000)
笔记
学习 Python fastapi
License:  CC BY 4.0
Share

Further Reading

Oct 29, 2024

halo代码注入——实现悬浮展示当前文章二维码 和 自定义主题字体

文章页面悬浮在二维码标志上面,就会把当前页面链接变成二维码并且展示出来,我当前使用的主题没有,所以写此文章记录一下。 效果展示 悬浮二维码效果展示 自定义字体效果展示 代码注入位置 代码一:悬浮二维码 原始<

Aug 26, 2024

Tortoise ORM - values()和value_list()

django: values()与values_list() from django.db import models class Blog(models.Model): name = models.CharField(max_length=100) tagline = model

Aug 25, 2024

tortoise orm 执行原生 SQL 查询

Tortoise ORM 提供了多种方式来执行 SQL 查询。 使用 execute_query_dict 方法执行查询,并以字典的形式返回查询结果: from tortoise.backends.asyncpg import client from typing import List, Opti

OLDER

python零碎知识点

NEWER

PostgreSQL自增序列-主键冲突问题

Recently Updated

  • 什么是 python 的闭包
  • 使用argparse模块解析命令行参数
  • Python中的二维码生成与解析(花里胡哨)
  • Python中的二维码生成与解析(基础使用)
  • 使用platform模块获取系统信息

Trending Tags

学习 Git 工具 SQL docker-compose 每日一点 快捷键 Flink fastapi Windows

Contents

©2025 RWO.cc. Some rights reserved.

Using the Halo theme Chirpy