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

news2024/9/20 20:48:49

回顾练习

用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.coloradmin.cn/o/2111869.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

多环境jdk安装,CentOS,统信UOS,Ubuntu,KylinOS,windows

文章目录 1.CentOS1.1yum安装1.2压缩包安装 本文档只是为了留档方便以后工作运维,或者给同事分享文档内容比较简陋命令也不是特别全,不适合小白观看,如有不懂可以私信,上班期间都是在得 1.CentOS 1.1yum安装 yum install -y jav…

Oracle VM VirtualBox 下 Ubuntu22 虚拟机配置双网络

初衷,希望在虚拟机里面配置两个网络。一个网络用来给虚拟机上互联网(浏览器,邮箱等)使用,一个网络用于虚拟机和宿主机通讯(静态IP) 1 VirtualBox 网络设置 2 宿主机网络配置 3 虚拟机内命令行配…

前端---对MVC MVP MVVM的理解

就需要从前端这些年的从无到有、从有到优的变迁过程讲一下。 1. Web1.0时代 在web1.0时代并没有前端的概念,开发一个web应用多数采用ASP.NET/Java/PHP编写,项目通常用多个aspx/jsp/php文件构成,每个文件中同时包含了HTML、CSS、JavaScript、…

SpringCloud之熔断监控HystrixDashboard和Turbine

SpringCloud之熔断监控HystrixDashboard和Turbine Hystrix-dashboard是一款针对Hystrix进行实时监控的工具,通过Hystrix Dashboard我们可以在直观地看到各 Hystrix Command的请求响应时间, 请求成功率等数据。但是只使用Hystrix Dashboard的话, 你只能看到单个应 …

chrome 插件开发入门

1. 介绍 Chrome 插件可用于在谷歌浏览器上控制当前页面的一些操作,可自主控制网页,提升效率。 平常我们可在谷歌应用商店中下载谷歌插件来增强浏览器功能,作为开发者,我们也可以自己开发一个浏览器插件来配合我们的日常学习工作…

【开源免费】基于SpringBoot+Vue.JS图书个性化推荐系统(JAVA毕业设计)

本文项目编号 T 015 ,文末自助获取源码 \color{red}{T015,文末自助获取源码} T015,文末自助获取源码 目录 一、系统介绍1.1 业务分析1.2 用例设计1.3 时序设计 二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究…

linux系统中,计算两个文件的相对路径

realpath --relative-to/home/itheima/smartnic/smartinc/blocks/ruby/seanet_diamond/tb/parser/test_parser_top /home/itheima/smartnic/smartinc/corundum/fpga/lib/eth/lib/axis/rtl/axis_fifo.v 检验方式就是直接在当前路径下,把输出的路径复制一份&#xff0…

二叉树的层次遍历(10道)

&#xff08;写给未来遗忘的自己&#xff09; 102.二叉数的层序遍历&#xff08;从上到下&#xff09; 题目&#xff1a; 代码&#xff1a; class Solution { public: vector<vector<int>> levelOrder(TreeNode* root) { vector<vector<int>> r…

H桥电路及其应用

一、H桥电路简介 H桥是一种电机驱动电路&#xff0c;通过四个开关元件构成“H”型的电流路径结构。该电路能够控制负载&#xff08;如直流电机&#xff09;的电流方向&#xff0c;从而实现电机正反转和速度调节。H桥广泛应用于需要方向控制的场合&#xff0c;尤其是机器人驱动…

Java小白一文讲清Java中集合相关的知识点(六)

接上篇 添加了第二个元素“php”字符串后&#xff0c;debug查看此时的table的空间具体存储情况如下&#xff1a; 于是其将第二个待存放的元素“php”映射放入了9号索引处&#xff1b;接下来我们分析添加第三个重复元素“java”再次尝试放进去时&#xff0c;底层发生的一系列动…

13款常用AI编程工具

AI编程工具的选择和使用&#xff0c;主要取决于具体的项目需求、编程语言、以及AI任务的类型&#xff08;如机器学习、自然语言处理、计算机视觉等&#xff09;。下面是一些广泛使用的AI编程工具合集&#xff0c;涵盖了从开发、训练、到部署的各个环节&#xff1a; Jupyter Not…

Signac R|如何合并多个 Seurat 对象 (2)

引言 在本文中演示了如何合并包含单细胞染色质数据的多个 Seurat 对象。为了进行演示&#xff0c;将使用 10x Genomics 提供的四个 scATAC-seq PBMC 数据集&#xff1a; 500-cell PBMC 1k-cell PBMC 5k-cell PBMC 10k-cell PBMC 构建数据对象 接下来&#xff0c;将利用已经量化…

【计算机网络】socket编程 几个网络命令

目录 理解端口号理解源ip地址与目的IP地址认识端口号理解端口号与pid关系 理解socket编程理解网络字节序socket编程接口常见的API创建socket套接字bind绑定套接字listen开始监听accept接收请求connect建立连接recvfrom接收数据sendto发送数据 sockaddr结构sockaddr底层结构sock…

【C++】中动态链接库和静态链接库的区别

1. C 中动态链接库和静态链接库的区别 在C编程中&#xff0c;动态链接库&#xff08;Dynamic Link Library, DLL&#xff09;和静态链接库&#xff08;Static Library&#xff09;都是用来组织和重用代码的方法&#xff0c;但它们之间有几个重要的区别&#xff1a; 1.1 动态链…

【vite-plugin-vue-layouts】关于 vue-layouts 布局插件的使用和注意事项

环境&#xff1a;vue3 vuetify3 unplugin-vue-router 是怎么创建这个项目的&#xff1a; 选择它推荐的设置&#xff08;Recommend&#xff09; 问题描述 代码结构 # App.vue <template><v-app> <AppNavigator /> <RouterView /><AppFooter />…

多语言融合,全栈操控Vue + Spring Boot + SQL Server + Python部署到Windows服务器!

将一个包含Vue前端、Spring Boot后端、SQL Server数据库和Python脚本的项目部署到Windows服务器上涉及多个步骤。以下是一个详细的指南&#xff0c;帮助您完成这一过程。 前言 你是否正在寻找将Vue, Spring Boot, SQL Server和Python完美融合&#xff0c;并顺利部署到Windows服…

实时渲染技术的崛起:游戏与实时交互的新篇章

随着科技的飞速发展&#xff0c;实时渲染技术正逐步成为游戏与实时交互领域的重要驱动力。这一技术的崛起不仅极大地提升了用户体验&#xff0c;还推动了游戏、虚拟现实&#xff08;VR&#xff09;、增强现实&#xff08;AR&#xff09;等多个行业的创新发展。实时渲染技术开启…

PHP轻量级高性能HTTP服务框架 - webman

摘要 webman 是一款基于 workerman 开发的高性能 HTTP 服务框架。webman 用于替代传统的 php-fpm 架构&#xff0c;提供超高性能可扩展的 HTTP 服务。你可以用 webman 开发网站&#xff0c;也可以开发 HTTP 接口或者微服务。 除此之外&#xff0c;webman 还支持自定义进程&am…

log4j 同一线程隔离classloader下MDC信息不同问题解决 ThreadLocal问题分析

最近遇到日志文件记录错误的问题。一个任务的日志信息会被莫名的拆分到两个不同目录中。且有一个目录还是曾经执行过的任务的目录。经过分析&#xff0c;首先怀疑的是MDC没有清理的问题&#xff0c;这也是最直观的问题。因为任务是在线程池(fixedThreadPool)中运行的。由于线程…

C#游戏服务器开发框架设计与架构详解

我一直在思考一个问题&#xff0c;什么样的服务端框架最好用&#xff0c;最适合? 经过这些年的项目经验&#xff0c;其实最好用&#xff0c;最适合的游戏服务端框架就是自己结合公司项目需求,团队特点与技术能力,自己整合的游戏框架是最好用的。 很多新手会担心自己整合的框架…