目录

  • 前言
  • 一、fastAPI是什么?
  • 二、安装
    • 1.fastapi的安装(此处用的是阿里云镜像源)
    • 2.测试一下
  • 三、使用
    • 1.声明路径参数
    • 2. 声明路径参数有效值
    • 3. 声明路径参数为路径
    • 4. 声明params参数
    • 5. 请求体(如post请求会用到)

前言

利用python fastAPI框架搭建简便的api服务


一、fastAPI是什么?

FastAPI 是一个用于构建 API 的现代、快速(高性能)的 web 框架,使用 Python 3.6+ 并基于标准的 Python 类型提示。总之它可以简单快捷的创建api服务。

二、安装

1.fastapi的安装(此处用的是阿里云镜像源)

pip install fastapi -i https://mirrors.aliyun.com/pypi/simple
pip install uvicorn -i https://mirrors.aliyun.com/pypi/simple

2.测试一下

创建文件test.py,代码如下:

from fastapi import FastAPIapp = FastAPI()@app.get('/')
def main():return {"message": "hello"}

然后打开终端(wins + R)启动uvicorn服务:

uvicorn test:app --reload
# 指定端口启动
uvicorn test:app --host '0.0.0.0' --port 8000 --reload

其中test 为文件名;app为test.py中创建的app对象;–reload为热启动,重启服务

看到如图结果代表启动成功。打开游览器输入127.0.0.1:8000/即可看到main方法中的输出结果。

三、使用

1.声明路径参数

from fastapi import FastAPIapp = FastAPI()@app.get('/home/{key}')
def main(key):  # 这里可以标记key的类型,例如: def main(key: int)return {"key": key}

请求结果:

2. 声明路径参数有效值

from fastapi import FastAPI
from enum import Enumapp = FastAPI()class limit(str, Enum):value1 = "111"value2 = "222"value3 = "333"@app.get('/home/{key}')
def main(key: limit):return {"key": key}

超出限制范围的请求会返回告知你一个错误信息的json:

3. 声明路径参数为路径

from fastapi import FastAPIapp = FastAPI()@app.get('/file/{file_path:file_path}')
def main(file_path):return {"path": file_path}

4. 声明params参数

from fastapi import FastAPIapp = FastAPI()@app.get('/file')
def main(value1, value2):return {"value1": value1, "value2": value2}

使用浏览器访问http://127.0.0.1:8000/file?value1=ssss&value2=rrrrrrr,你会得到:{ "value1": "ssss", "value2": "rrrrrrr" }

5. 请求体(如post请求会用到)

定义请求体,需要使用 Pydantic

from fastapi import FastAPI
from pydantic import BaseModelapp = FastAPI()@app.get('/home')
def main(item: Item):return itemclass Item(BaseModel):value1: strvalue2: str = Nonevalue3: float = None

用postman发送模拟post请求(请求体格式为json):

fastAPI简单使用相关推荐

  1. FastAPI简单入门

    FastAPI简单入门 简介 FastAPI 是一个用于构建 API 的现代.快速(高性能)的 web 框架,使用 Python 3.6+ 并基于标准的 Python 类型提示. 关键特性: 快速:可 ...

  2. fastapi——简单快速入门

    fastapi--快速入门笔记 根据慕课网视频教程 地址:https://www.bilibili.com/video/BV1iN411X72b?p=36 print("\033[31m5. ...

  3. FastAPI简单示例

    在线文档 FastAPI在线文档 工程结构 说明: main.py是程序的入口 routers里面存放了不同的实现 依赖库的安装 pip install openpyxl pip install fa ...

  4. 『Python学习笔记』Python中的异步Web框架之fastAPI介绍RestAPI

    Python中的异步Web框架之fastAPI介绍&RestAPI 文章目录 一. fastAPI简要介绍 1.1. 安装 1.2. 创建 1.3. get方法 1.4. post方法 1.5 ...

  5. 毕业设计—心灵小屋健康管理系统(Vue+FastAPI+MySQL)一

    一.系统设计简述 本系统包含两大部分,①是在网页端运行的后台管理系统,对系统的输出内容.系统用户进行管理:②是在移动端运行的客户系统,以APP的形式为用户提供文章内容.题目测试.用户交流等服务. Vu ...

  6. python 3.7安装festtext、提示要更新_现代开发者必备:5个更流畅、更受欢迎的Python web框架...

    本文转载自公众号"读芯术"(ID:AI_Discovery). 如今,可供选择的Python web框架有不少,能帮助你更快更轻松地创建web应用.本文就将为大家介绍一些更现代.使 ...

  7. OpenAI ChatGPT API + FaskAPI SSE Stream 流式周转技术 以及前端Fetch 流式请求获取案例

    先填坑,一贯习惯 nginx如果要支持SSE,要调整一些参数 conf配置文件,AI给的,具体自己没搭,应该是正确的 nginx worker_processes 1;events {worker_c ...

  8. 一个简单的FastAPI入门项目

    FastAPI Demo项目 一个简单的使用FastAPI框架搭建的服务,包含了基本的数据库链接以及CRUD操作.请求体模式的定义.基本路径操作函数的编写等,非常适合fastapi入门者. 说明: 1 ...

  9. Fastapi + deta 部署一个简单的笔记应用

    效果 随机路径,可自定义路径 支持markdown 部署在deta 预览地址:inote.deta.dev 使用到的依赖库 fastapi deta python-multipart markdown ...

最新文章

  1. linux的 计划任务机制,自己带节奏
  2. 文件上传与下载【目前仅仅实现了上传功能】
  3. anaconda更换镜像源
  4. .net学习之委托和事件
  5. 华为轮值董事长郭平2020全联接大会主题演讲:永远面向阳光,阴影甩在身后
  6. session的removeAttribute()和invalidate()的区别
  7. SuperMap iClient3D for WebGL 示范案例(一)倾斜模型加载
  8. Atitit 分布式文件系统总结 fastdfs nfs smb webdav ftp 目录 1.1. webdav 是个好的方案。。。Server client都有 1 1.2. ftp也方便ja
  9. JavaScript-RegExp及String的正则表达式处理方法
  10. 使用ajax实现文件上传功能
  11. LNMP(Nginx服务,MySQL 服务,安装PHP服务 手动安装技术文档)
  12. rabbitmq实践demo
  13. python-matplotlib库绘制饼形图专题(从一般饼状图到内嵌环形图)
  14. 苹果服务器维护时间表2019,ios 内购详解(2019)
  15. FPT Software携手三井物产提升日本网络安全水平
  16. 搭建服务器 运用阿里云DNS自己实现DDNS
  17. 域名被墙的解决方法是什么?
  18. python3.6 + tensorflow1.9.0安装教程
  19. JS中关键字in的作用
  20. 计算机操作系统第五章习题(附答案)

热门文章

  1. C#实现毫秒级计时器
  2. 有关JIT你需要知道的
  3. vue-time-slot 一款基于vue3的会议预约时间组件,时间轴为早7-晚11,可自由选择,并且非常方便。
  4. 2017 ACM Arabella Collegiate Programming Contest(solved 9/13, complex 12/13)
  5. 脑洞 博弈 E. Competitive Seagulls 2017 ACM Arabella Collegiate Programming Contest
  6. python必备常用英语词汇
  7. 等保测评(windows)
  8. 学习如何利用docker建立容器,然后用fastqc分析数据
  9. 面试之前,简历之上:给前端校招同学的简历建议
  10. i5 12490f和i5 12600kf差距 i512490f和i512600kf对比