异步框架 fastapi -- 简单介绍

文章目录

  • fastapi 介绍
  • restful接口设计
  • 简单应用
  • Swagger风格的接口文档

fastapi 介绍

fastapi官方文档

  • fastapi 是现代化、高性能、基于python标准类型注释的异步web框架;
  • 基于python构建web APIs,性能可比go语言;
  • 高效编码,更少的bug错误;
  • 安装pip install fastapi uvicorn,部署基于ASGI;

 

restful接口设计

  • 应用场景: 前后端分离
  • 面向资源的设计,每个 uri 是一个资源,对资源的操作使用请求的方法表示
    • GET, 获取资源;
    • POST,创建资源;
    • PUT,更新资源;
    • DELETE,删除资源;
    • HEAD 类似GET,只返回头部信息;
    • OPTIONS,查看服务端支持的请求方法等,常用跨域的检查;
  • 交互数据格式:json;
  • uri 资源路径设计
    • 尽量使用名词;
    • 尽量体现版本号,如/v1/user
    • 使用查询参数;
       

简单应用

# __author__ = "laufing"from fastapi import FastAPI # 异步web框架
import uvicorn # ASGI# 创建应用对象
app = FastAPI()# GET 接口
@app.get("/")
def index():return {"code": 200,"msg": "0k"}# get /user/info?page=5&pageSize=10
@app.get("/user/info")
def user_info(page: int = 1, pageSize: int = 10) -> dict: # 查询参数 直接传入print("query parameters:", page, pageSize)return {"code": 200,"msg": "page=%d and pageSize=%d" % (page, pageSize)}# 数据模型、序列化
from pydantic import BaseModelclass UserData(BaseModel):name: str # 必须参数password: strphone: str# post /user/register    请求体数据 {"name": "jack", "password": 123, "phone": 123}
@app.post("/user/register")
def register(user: UserData) -> UserData:print(user, type(user)) # UserData类型的对象return user # 将模型序列化为jsonif __name__ == '__main__':# 即绑定局域网ip# 0.0.0.0 支持linux ,可以在py脚本中启动# uvicorn.run(app, host="localhost", port=8083, log_level="info")pass

启动方式:

  • python脚本方式;
    • uvicorn.run(app, host, port)
  • 命令行方式
    • uvicorn src.main:app --reload

可以在浏览器中测试接口;
 

Swagger风格的接口文档

在浏览器中输入:http://localhost:8000/docs,可以在如下接口中进行测试。

在这里插入图片描述
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1549158.html

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

相关文章

Word导出样式模板,应用到其他所有word

一,打开自己定义好的模板word文件,要用docx格式 打开自己自定义好各种样式的模板的docx文件。 二, 另存为 -》 选一个位置 三,保存为dotm格式 名字要改为Normal 保存类型要用dotm格式。 四,去找word默认加载的…

OpenAI o1与GPT-4o究竟强在哪里

OpenAI 的 O1 模型与 GPT-4o 相比,具有显著的技术进步和性能提升。以下是两者的主要区别和 O1 的进步之处: 推理能力:O1 模型在处理复杂问题(如编程和数学)方面表现出更强的推理能力。例如,在国际数学奥林匹…

大模型微调方法(非常详细),收藏这一篇就够了!

引言 众所周知,大语言模型(LLM)正在飞速发展,各行业都有了自己的大模型。其中,大模型微调技术在此过程中起到了非常关键的作用,它提升了模型的生成效率和适应性,使其能够在多样化的应用场景中发挥更大的价值。 那么&…

如果只能保留一个复制粘贴软件,那一定是它pastemate

下载地址:Pastemate 在日常的工作和生活中,使用电脑必离不开的功能中,一定有复制粘贴。传统的复制粘贴方式效率不那么高,Windows内置的剪切板功能感觉又差那么些意思。 🧐对于功能和颜值都有要求的你,一定…

大模型推理任务Nvidia GPU选型指南

大型语言模型 (LLM)(如 GPT-4、BERT 和其他基于 Transformer 的模型)彻底改变了 AI 格局。这些模型需要大量计算资源来进行训练和推理。选择合适的 GPU 进行 LLM 推理可以极大地影响性能、成本效益和可扩展性。 在本文中,我们将探索最适合 L…

你们猜!吊打Oracle的国产数据库有哪几家?

今天闲暇之余看到某vx群聊得很火热,这个群聚集了国内不少数据库大咖,其中大家聊到国产数据库遥遥领先了。 最开始主要是一个朋友提到目前很多企业拍板的人并不懂数据库,甚至很多知名数据库都没听过。 然后大家就开始聊到国产数据库了&#xf…

LeetCode[中等] 17. 电话号码的字母组合

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 思路 回溯法 log:当前结果数组;level&#xff1a…

书生·浦语大模型全链路开源开放体系-笔记

推理能力领先 与社区开源模型相比,InternLM2的性能提升了20%,这表明模型在处理复杂推理任务时更加高效和准确。 支持100万字上下文 该模型能够理解和精确处理长达100万字的文本,这在开源模型中处于领先地位。这种能力对于处理长篇文章、学…

html+css+js实现Pagination 分页

效果图 HTML部分 <body><div class"pagination"><button class"prev"><</button><ul><li class"active">1</li><li>2</li><li>3</li><li>4</li><li>5…

解压视频素材下载网站推荐

在制作抖音小说推文或其他短视频时&#xff0c;找到合适的解压视频素材非常重要。以下是几个推荐的网站&#xff0c;可以帮助你轻松下载高质量的解压视频素材&#xff1a; 蛙学网 蛙学网是国内顶尖的短视频素材网站&#xff0c;提供大量4K高清无水印的解压视频素材&#xff0c;…

Midjourney中文版:解锁AI艺术创作的无限潜能

在数字化时代&#xff0c;艺术创作与科技的融合正以前所未有的速度推进&#xff0c;而Midjourney中文版正是这一趋势下的璀璨明星。作为一款专为中文用户设计的AI绘图工具&#xff0c;它不仅集成了最先进的深度学习技术&#xff0c;还通过本地化优化&#xff0c;为国内设计师和…

心理咨询展示网站建设渠道拓展

心理问题长期以来都受到关注&#xff0c;每个城市里也都有相关服务商家&#xff0c;除了进店外&#xff0c;线上也可以开展咨询服务&#xff0c;对需求者来说需要找到靠谱的品牌&#xff0c;而商家也需要触达到更多客户获取转化。 网站是品牌线上工具&#xff0c;利于商家通过…

昇思MindSpore进阶教程-优化器

大家好&#xff0c;我是刘明&#xff0c;明志科技创始人&#xff0c;华为昇思MindSpore布道师。 技术上主攻前端开发、鸿蒙开发和AI算法研究。 努力为大家带来持续的技术分享&#xff0c;如果你也喜欢我的文章&#xff0c;就点个关注吧 模型训练过程中&#xff0c;使用优化器更…

什么是期望最大化算法?

一、期望最大化算法 期望最大化&#xff08;EM&#xff09;算法是一种在统计学和机器学习中广泛使用的迭代方法&#xff0c;它特别适用于含有隐变量的概率模型参数估计问题。在统计学和机器学习中&#xff0c;有很多不同的模型&#xff0c;例如高斯混合模型&#xff08;GMM&…

LeetCode讲解篇之3. 无重复字符的最长子串

文章目录 题目描述题解思路代码实现 题目描述 题解思路 因为我们需要求无重复字符的最长子串&#xff0c;这个我们首先需要想到使用滑动窗口&#xff0c;窗口内记录无重复的子串的所有字符&#xff0c;移动窗口的右边界时&#xff0c;发现当前字符在窗口内已经出现&#xff0c…

unreal engine5制作动作类游戏时,我们使用刀剑等武器攻击怪物或敌方单位时,发现攻击特效、伤害等没有触发

UE5系列文章目录 文章目录 UE5系列文章目录前言一、问题分析二、使用步骤2.玩家角色碰撞设置3.怪物角色碰撞预设 最终效果 前言 在使用unreal engine5制作动作类游戏时&#xff0c;我们使用刀剑等武器攻击怪物或敌方单位时&#xff0c;发现攻击特效、伤害等没有触发。检查动画…

二叉树进阶oj题【二叉树相关10道oj题的解析和c++代码实现】

目录 二叉树进阶oj题1.根据二叉树创建字符串2.二叉树的层序遍历3.二叉树的层序遍历 II4.二叉树的最近公共祖先5.二叉搜索树和双向链表6.从前序与中序遍历序列构造二叉树7.从中序和后序遍历序列来构造二叉树8.二叉树的前序遍历&#xff0c;非递归迭代实现9.二叉树中序遍历 &…

烟雾污染云层检测系统源码分享

烟雾污染云层检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer…

ssh方式连接上GitHub(超详细的哦)

目录 先检查本地有无生成过SSH key 生成 SSH Key&#xff08;如果没有的话&#xff09; 查看新生成的 SSH 公钥 添加新的 SSH Key 测试 SSH 连接 先检查本地有无生成过SSH key ls -al ~/.ssh终端输入以上命令查看 如果有应该能看到以下列表 id_rsa id_rsa.pub id_ed2551…

端侧Agent系列 | 端侧AI Agent任务拆解大师如何助力AI手机?(详解版)

引言 简介 Octo-planner 规划和执行Agent框架 规划数据集 基准设计 实验设计 结果 全量微调与LoRA 多LoRA训练与合并 不同基础模型的全量微调 不同数据集大小的全量微调 总结 实战 英文 中文示例1&#xff1a; 中文示例2&#xff1a; 0. 引言 人生到处知何似…