Python-fastAPI的学习与使用

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

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

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

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

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

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

这会安装:

fastapi - FastAPI 框架
uvicorn[standard] - 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 小时前
奈飞工厂中文官网入口,影视在线观看|打不开|电脑版下载
学习
好好学习天天向上~~1 小时前
6_Linux学习总结_自动化构建
linux·学习·自动化
非凡ghost3 小时前
PowerDirector安卓版(威力导演安卓版)
android·windows·学习·软件需求
代码游侠3 小时前
C语言核心概念复习——C语言基础阶段
linux·开发语言·c++·学习
猫头虎3 小时前
OpenClaw-VSCode:在 VS Code 里玩转 OpenClaw,远程管理+SSH 双剑合璧
ide·vscode·开源·ssh·github·aigc·ai编程
dingdingfish3 小时前
Bash学习 - 第3章:Basic Shell Features,第5节:Shell Expansions
开发语言·学习·bash
firewood20243 小时前
共射三极管放大电路相关情况分析
笔记·学习
zl0_00_03 小时前
美亚2023
学习
曲幽3 小时前
FastAPI不止于API:手把手教你用Jinja2打造动态Web页面
python·fastapi·backend·jinja2·full stack·template engine·web development
AI_56783 小时前
SQL性能优化全景指南:从量子执行计划到自适应索引的终极实践
数据库·人工智能·学习·adb