Python-fastAPI的学习与使用

我们要学习python,目的不是为了精通python,而是能利用python搭建ai服务。

也就是能达到"用Python调用AI库和构建简单服务"的水平即可,无需追求Pythonic。

安装 python,fastapi等一系列相关服务或者工具

安装python的过程我就不说了,这里我来说下安装fastapi

打开黑窗口(cmd),输入命令:

复制代码
pip install "fastapi[all]"

这会安装:

fastapi - FastAPI 框架
uvicornstandard - ASGI 服务器
python-multipart - 表单和文件上传支持
jinja2 - 模板引擎
python-jose - JWT 令牌支持
passlib - 密码哈希
bcrypt - 密码加密
python-dotenv - 环境变量支持。

python编程工具

这里博主用的idea集成了python,所以要用idea编写python语言。

关于idea 如何集成python,也很简单。

idea找到插件位置,下载python即可。

选择创建项目;python,如下

创建之后,我们可以创建main文件夹;会有默认的init类文件,

然后我们输入 from fastapi import FastAPI

如果报错,我们在项目位置打开黑窗口,执行以下命令:

pip install fastapi uvicorn

这个时候就可以正常使用fastApi了.

编程代码

我们编写一段代码

代码解析:

from fastapi import FastAPI

这行代码从< code>fastapi 模块中导入了 FastAPI 类。FastAPI 类是 FastAPI 框架的核心,用于创建 FastAPI 应用程序实例。

app = FastAPI()

这行代码创建了一个 FastAPI 应用实例。与 Flask 不同,FastAPI 不需要传递 name 参数,因为它默认使用当前模块。

@app.get("/")

这是一个装饰器,用于告诉 FastAPI 哪个 URL 应该触发下面的函数,并且指定了 HTTP 方法为 GET。在这个例子中,它指定了根 URL(即网站的主页)。

def read_root():

这是定义了一个名为 read_root 的函数,它将被调用当用户使用 GET 方法访问根 URL 时。

return {"CHINA": "NIUBI"}

这行代码是 read_root 函数的返回值。当用户使用 GET 方法访问根 URL 时,这个 JSON 对象将被发送回用户的浏览器或 API 客户端。

java服务调用python服务

我们在java程序里 利用HTTP 进行调用刚刚我们编写的方法:

可以看到成功获取到了python语言返回的信息。

方法进阶

我们再声明一个get方法

from typing import Union

from fastapi import FastAPI

app =FastAPI()

@app.get("/")

def read_root():

return {"CHINA": "NIUBI"}

@app.get("/test/{id}")

def test(id:int,name:str|None=None):

return{"我是ID":id,"我是Name":name}

复制代码
@app.get("/test/{id}")  :get请求;方法名为test
复制代码
(id:int,name:str|None=None) :两个参数一个id(int类型),一个name(字符串类型,可为空)

其中这两个参数代表的含义不同:

id --是路径参数,指定为整数类型。
q -- 是查询参数,指定为字符串类型或空(None)。

当我们在java服务调用该方法:

复制代码
String info = HttpUtils.doHttpGet("http://127.0.0.1:8000/test/10?name=周树人");
System.out.println(info);


打印信息:{"我是ID":10,"我是Name":"周树人"}

好了,今天学习就到这里了。

另外,大家可以参考下这个网址fastapi学习

相关推荐
许雪里1 小时前
XXL-AI v1.4.0 发布|AI应用开发平台
agent·ai编程
EnCi Zheng2 小时前
Agent 如何进行工具调用:从一次 Function Calling 到生产级工具编排的完整链路
大数据·人工智能·agent·ai编程·工具调用
Nuanyt3 小时前
Agent 学习笔记(下篇三):上线工程、进阶选择与操作界面(Stage 7 / 7.5 / 8 + 延伸路线)
笔记·python·学习·memory·aiagent·harness
狼爷3 小时前
AI正在制造通缩:一场闭门会背后,三个被大多数人忽略的底层逻辑
人工智能·aigc·ai编程
超级架构师4 小时前
PRAXO-CORE 2.5.0:用 conformance 和显式边界构建 Go Agent 框架
开发语言·人工智能·后端·golang·ai编程·智能体框架·praxo-core
十七喜欢前端4 小时前
工具调用没那么简单:Agent 和外部世界打交道时,有四道坎
agent·ai编程
叼烟扛炮4 小时前
Linux 学习笔记(四十一):TCP 并发演进——从单进程到多线程服务器
linux·运维·服务器·网络·笔记·学习·tcp/ip
叼烟扛炮4 小时前
Linux 学习笔记(四十四):HTTP 协议解析与极简 Web 服务器实战
linux·服务器·学习
songyuc5 小时前
【Manskill3】TableSceneBuilder学习笔记
pytorch·笔记·学习
外收内放5 小时前
Python基础语法练习题(75)
开发语言·python·学习