当前位置: 首页 > article >正文

FastAPI+Vue3零基础开发ERP系统项目实战课 20240906 上课笔记 fastapi的各种练习

回顾练习

用FastAPI写一个接口,这个接口能够返回九九乘法表的字符串。

获取九九乘法表:

for i in range(1, 10):
    for j in range(1, i + 1):
        print(f"{j} x {i} = {j * i}", end="\t")
    print()

# 得到字符串
talbe99 = ""
for i in range(1, 10):
    for j in range(1, i + 1):
        talbe99 += f"{j} x {i} = {j * i}\t"
    talbe99 += "\n"
print(talbe99)


def get_99table():
    talbe99 = ""
    for i in range(1, 10):
        for j in range(1, i + 1):
            talbe99 += f"{j} x {i} = {j * i}\t"
        talbe99 += "\n"
    return talbe99


print(get_99table())

使用FastAPI封装为接口。

from fastapi import FastAPI

app = FastAPI()


def get_99table():
    talbe99 = ""
    for i in range(1, 10):
        for j in range(1, i + 1):
            talbe99 += f"{j} x {i} = {j * i}\t"
        talbe99 += "\n"
    return talbe99


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


if __name__ == '__main__':
    import uvicorn

    uvicorn.run(app, host='0.0.0.0', port=8888)

练习

使用FastAPI封装一个接口,这个接口支持传入两个整数a和b,接口返回a和b相加的结果。

from fastapi import FastAPI

app = FastAPI()


@app.get("/")
async def root(a: int, b: int):
    return {"message": a + b}


if __name__ == '__main__':
    import uvicorn

    uvicorn.run(app, host='0.0.0.0', port=8888)

在这里插入图片描述

练习

求幂运算。传入两个数a和b,接口里面求a的b次方,然后将结果返回。

from fastapi import FastAPI

app = FastAPI()


@app.get("/")
async def root(a: int, b: int):
    return {"message": a ** b}


if __name__ == '__main__':
    import uvicorn

    uvicorn.run(app, host='0.0.0.0', port=8888)

升级加法

原来只能实现两个数相加,我现在想要实现五个数相加。

from fastapi import FastAPI

app = FastAPI()


@app.get("/")
async def root(a: int, b: int, c: int, d: int, e: int):
    return {"message": a + b + c + d + e}


if __name__ == '__main__':
    import uvicorn

    uvicorn.run(app, host='0.0.0.0', port=8888)

JSON参数

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()


class AddRequest(BaseModel):
    arr: list[int]


@app.get("/")
async def root(req_data: AddRequest):
    return req_data


if __name__ == '__main__':
    import uvicorn

    uvicorn.run(app, host='0.0.0.0', port=8888)

在这里插入图片描述

练习

把刚才五个数的加法,改成通过JSON传递,对JSON中的arr数组进行求和并返回,这样能够支持任意个数的加法。

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()


class AddRequest(BaseModel):
    arr: list[int]


@app.get("/")
async def root(req_data: AddRequest):
    return {"result": sum(req_data.arr)}


if __name__ == '__main__':
    import uvicorn

    uvicorn.run(app, host='0.0.0.0', port=8888)

在这里插入图片描述

练习

刚才:传入一个数组,求数组所有的和。

现在:传入一个数组,求这个数组的最大值和最小值。

内置方法:

  • sum:求和
  • max:求最大值
  • min:求最小值
from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()


class AddRequest(BaseModel):
    arr: list[int]


@app.get("/")
async def root(req_data: AddRequest):
    return {
        "sum": sum(req_data.arr),
        "min": min(req_data.arr),
        "max": max(req_data.arr),
    }


if __name__ == '__main__':
    import uvicorn

    uvicorn.run(app, host='0.0.0.0', port=8888)

在这里插入图片描述

练习

传入一个数组,求平均值。

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()


class AddRequest(BaseModel):
    arr: list[int]


@app.get("/")
async def root(req_data: AddRequest):
    return {
        "sum": sum(req_data.arr),
        "min": min(req_data.arr),
        "max": max(req_data.arr),
        "avg": sum(req_data.arr) / len(req_data.arr),
    }


if __name__ == '__main__':
    import uvicorn

    uvicorn.run(app, host='0.0.0.0', port=8888)

在这里插入图片描述


http://www.kler.cn/a/301912.html

相关文章:

  • 丑数动态规划
  • Spring Boot框架:电商系统的技术革新
  • unity小:shaderGraph不规则涟漪、波纹效果
  • WSL与Ubuntu系统--使用Linux
  • 软件设计师 - 第1章 计算机网络概论
  • Android Osmdroid + 天地图 (二)
  • 【深度学习 transformer】基于Transformer的图像分类方法及应用实例
  • idea同时装了两个版本,每次打开低版本都需要重新激活破解
  • 性能测试-jmeter脚本录制(十五)
  • RK3568平台开发系列讲解(LCD篇)Framebuffer开发
  • 大佬,简单解释下“嵌入式软件开发”和“嵌入式硬件开发”的区别
  • 【Unity学习心得】如何使用Unity制作“饥荒”风格的俯视角2.5D游戏
  • 汽车驾校开设无人机培训机构技术分析
  • 第十七章 番外 共现矩阵
  • 经典文献阅读之--Multi S-Graphs(一种高效的实时分布式语义关系协同SLAM)
  • ubuntu20.04/22.04/24.04 docker 容器安装方法
  • RB-SQL:利用检索LLM框架处理大型数据库和复杂多表查询的NL2SQL
  • JAVAWeb-XML-Tomcat(纯小白下载安装调试教程)-HTTP
  • 算法设计(二)
  • 【Java OJ】弦截法求根(循环)
  • 针对网上nbcio-boot代码审计的actuator方法的未授权访问漏洞和ScriptEngine的注入漏洞的补救
  • 基线代理 AI 系统架构
  • 一个以细节见功底的JAVA程序
  • MySQL——数据库的高级操作(二)用户管理(2)创建普通用户
  • 春招审核新策略:Spring Boot系统实现
  • 大型语言模型:通过代码生成、调试和 CI/CD 集成改变软件开发的游戏规则