fastapi学习前置知识点

news2024/11/25 21:24:56

前置知识点

FastApi:一个用于构建API的现代、快速(高性能)的web框架。

FastApi是建立在Pydantic和Starlette基础上,Pydantic是一个基于Python类型提示来定义数据验证、序列化和文档的库。Starlette是一种轻量级的ASGI框架/工具包,是构建高性能Asyncio服务的理性选择。

Starlette是一个轻量级的ASGI框架/工具包,主要负责web部分(Asyncio)

Pydantic负责数据部分(类型提示)

python版本要在3.7以上

1.1 http协议

1.什么是请求头请求体、响应头响应体

2.URL地址包括什么

3.get请求和post请求是什么

4.Content-Type是什么

1.1.1 简介

http协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于万维网服务器与本地浏览器之间传输超文本的传送协议。http是一个应用层的面向对象的协议,由于其简洁、快速的方式,适用于分布式超媒体信息系统。

浏览器作为http客户端通过URL向http服务端即web服务器发送所有请求,web服务器根据收到的请求,向客户端发送响应信息。

1.1.2 http协议特性

  1. 基于TCP/IP协议

    http协议是基于TCP/IP协议之上的应用层协议

  2. 基于请求-响应模式

    http协议规定,请求从客户端发出,服务器端响应该请求并返回。换句话说就是,先从客户端开始建立通信,服务器端在没有接收到请求之前不会发送响应。

  3. 无状态保存

  4. 短连接

    http1.0默认使用的是短连接,浏览器和服务器每进行一次http操作,就建立一次连接、任务结束就中断连接。

    http1.1起,默认使用长连接,要使用长连接,客户端和服务器的http首部的Connetion都要设置为keep-alive,才能支持长连接。

    http长连接指的是复用tcp连接。多个http请求可以复用同一个tcp连接,这就节省了tcp连接建立和断开的消耗。

1.1.3 http请求协议与响应协议

在这里插入图片描述

  • http请求协议

    在这里插入图片描述

    • 请求首行:

      • 请求方式

        • post

        • get

          将数据放在?后面

          没有请求体

          参数有限

      • 请求路径

      • 请求协议

    • 请求头(键值对)

      • content-type:application/json

        标识请求体,使服务器知道请求体的类型

      • user-agent:Chrome/104.0.0.0 Safari/537.36

    • 请求体

      • 请求头和请求体之间有一个空行,用来隔开请求体和请求头
  • http响应协议

    在这里插入图片描述

    • 响应首行
    • 响应头
    • 响应体

1.2 api接口

  • 前后端不分离
    • 客户端看到的内容和所有界面效果都是由服务端提供出来的
  • 前后端分离(绝大部分项目都是前后端分离)
    • 前端形成一个独立的网站,服务端构成一个独立的网站

应用程序编程接口(Application Programming Interface,API接口),就是应用程序对外提供一个操作数据的入口,这个入口可以是一个函数或类方法,也可以是一个url地址或者一个网络地址。当客户端调用这个入口,应用程序则会执行对应代码操作,给客户端完成相对应的功能。

目前大多数使用的接口实现规范主要是:restful、RPC。

restful是一种专门为web开发而定义API接口的设计风格,尤其适用于前后端分离的应用模式。

关键:面向资源开发

该风格的理念认为后端开发任务就是提供数据的、对外提供的是数据资源的访问接口,所以在定义接口时,客户端访问的url路径就表示这种要操作的数据资源。

对于数据资源分别使用post、delete、get、update等请求动作来表达对数据的增删查改。

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

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

相关文章

Matlab|【重磅】配电网故障重构/孤岛划分

目录 1 主要内容 1.1 背景 1.2 流程图 2 部分代码 3 程序结果 4 下载链接 1 主要内容 程序主要复现《基于GA_BFGS算法的配电网故障恢复性重构研究_郑海广》,采用matlab编程软件实现,依据网络结构和DG供电方式对配电网进行孤岛划分,将含…

避免使用for循环操作高维数组:numpy.apply_along_axis用法

文章目录 场景实际操作编写相关函数np.apply_along_axis 场景 设想我有一列高维向量,读取之后的数据都是字符串变量,我需要把这些字符串数据转换为复数之后求绝对值 实际操作 在使用pd.read_csv()读取数据之后,将这一列数据转换为numpy数…

Python高阶学习记录

文章导读 阅读本文需要一定的python基础,部分知识点是对python入门篇学习记录和python并发编程学习记录的深入探究,本文记录的Python知识点包括函数式编程,装饰器,生成器,迭代器,正则表达式,内存…

面试题------>JVM虚拟机!!!

一、Java对象内存布局 二、JVM 内存结构 程序计数器: 线程私有的(每个线程都有一个自己的程序计数器),是一个指针.代码运行,执行命令.而每个命令都是有行号的,会使用程序计数器来记录命令执行到多少行了.记录代码执行的位置. Java虚拟机栈: 线程私有的(每个线程都有一个自己…

【计算机网络】计算机网络的组成与功能

计算机网络的组成与功能 导读一、计算机网络的组成1.1 从组成方式上1.1.1 硬件1.1.2 软件1.1.3 协议 1.2 从工作方式上1.3 从功能组成上 二、计算机网络的功能2.1 数据通信2.2 资源共享2.3 分布式处理2.4 提高可靠性2.5 负载均衡2.6 其它 结语 导读 大家好,很高兴又…

可视化数据科学平台在信贷领域应用系列五:零代码可视化建模

信贷风控模型是金融机构风险管理的核心工具,在信贷风险管理工作中扮演着至关重要的角色。随着信贷市场的环境不断变化,信贷业务的风险日趋复杂化和隐蔽化,开发和应用准确高效的信贷风控模型显得尤为重要。信贷风险控制面临着越来越大的挑战和…

orbslam2代码解读(1):数据预处理过程

写orbslam2代码解读文章的初衷 首先最近陆陆续续花了一两周时间学习视觉slam,因为之前主要是做激光slam,有一定基础所以学的也比较快,也是看完了视觉14讲的后端后直接看orbslam2的课,看的cvlife的课(课里大部分是代码…

规则引擎LiteFlow发布v2.12.1版本,决策路由特性

个人博客:无奈何杨(wnhyang) 个人语雀:wnhyang 共享语雀:在线知识共享 Github:wnhyang - Overview 简介 标题其实是不准确的,了解过的会知道在LiteFlow的2.12.0已经有了决策路由的特性&…

python数据文件处理库-pandas

内容目录 一、pandas介绍二、数据加载和写出三、数据清洗四、数据转换五、数据查询和筛选六、数据统计七、数据可视化 pandas 是一个 Python提供的快速、灵活的数据结构处理包,让“关系型”或“标记型”数据的交互既简单又直观。 官网地址: https://pandas.pydata.o…

树形表/树形数据接口的开发

数据表格式 需要返回的json格式 点击查看json数据 [{"childrenTreeNodes" : [{"childrenTreeNodes" : null,"id" : "1-1-1","isLeaf" : null,"isShow" : null,"label" : "HTML/CSS","na…

14.pinia初始与安装

pinia初始与安装 pinia官网 https://pinia.vuejs.org/ https://pinia.vuejs.org/introduction.html pinia安装 npm install pinia main.ts引入pinia import { createApp } from vue // import ./style.css import App from ./App.vue import router from ./router/index // …

LangChain :构建个人AI代理从这里开始

LangChain,一个强大的工具,允许根据用户输入创建对语言模型和其他工具的复杂调用链。就像拥有一个私人助理,可以根据手头的任务做出决定。本文来分享一下在 LangChain 中使用 Agents 的心路历程。 LangChain中代理的概念 在 LangChain 中&a…

网络高频攻击手段与基本防护措施总结

主要攻击手段 一、云平台攻击 云平台攻击是指针对云服务器的恶意行为,旨在获取非法访问权限、窃取敏感数据或者破坏服务器的正常运行。云平台攻击的形式多样,以下是对云平台攻击的一些主要类型和特点的详细分析: 攻击类型: 凭据…

苹果手机数据不见了怎么恢复?3个方法,搞定苹果手机数据恢复!

在许多错误的情况下,当你更新到最新的 iOS 版本或使用越狱来获得更多功能和权限、误删重要的手机文件时,苹果手机中的数据可能会丢失或被意外删除。一旦发现数据丢失,你就会查看 iTunes 备份或 iCloud 备份,并希望在其中恢复丢失的…

Rust 性能分析

都说Rust性能好,但是也得代码写得好,猜猜下面两个代码哪个快 . - 力扣&#xff08;LeetCode&#xff09; use std::collections::HashMap; use lazy_static::lazy_static;lazy_static! {static ref DIGIT: HashMap<char, usize> {let mut m HashMap::new();for c in …

electron打包时资源下载失败cannot resolve xxx/30.0.9/electron-v30.0.9-win32-ia32.zip

同学们可以私信我加入学习群&#xff01; 正文开始 问题描述解决方案总结 问题描述 最近electron更新频繁&#xff0c;而我在用electron做个人项目&#xff0c;对稳定性没有太高要求&#xff0c;希望保持着electron的最新版本&#xff0c;所以就没有固定版本。 单位网络不太好…

Jmeter性能分析及调优详解(入门)

一、系统性能理解 如果说需求、开发、DB、运维、测试是单一一门学科&#xff0c;那么性能就是综合学科&#xff0c;它包含了需求分析、DB、开发、测试、运维的所有学科。其实一般来说在实际性能分析和调优中&#xff0c;测试担任的角色就是写压测脚本并执行脚本查看结果&#…

区间预测 | Matlab实现QRCNN-GRU-Attention分位数回归卷积门控循环单元注意力机制时序区间预测

区间预测 | Matlab实现QRCNN-GRU-Attention分位数回归卷积门控循环单元注意力机制时序区间预测 目录 区间预测 | Matlab实现QRCNN-GRU-Attention分位数回归卷积门控循环单元注意力机制时序区间预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现QRCNN-GRU-…

在Linux上的Java项目导出PDF乱码问题

在Linux上的Java项目导出PDF乱码问题 场景&#xff1a;一个Java项目导出PDF&#xff0c;在我本地导出是没有问题&#xff0c;但是部署上Linux上后&#xff0c;导出就出现了乱码了。 处理方案 我这里使用的处理方案是在Linux服务器上安装一些PDF需要使用的字体 1.把字体上传到…

中国出海企业“奔赴”俄罗斯蓝海 有哪些认知需要对齐? | TopOn变现干货

中国企业加速出海已成常态化。在出海大潮席卷下&#xff0c;中国企业的身影已遍布欧美、东南亚、拉美、中东等多个成熟市场和潜力市场&#xff0c;眼下&#xff0c;这些热门市场几成红海&#xff0c;准入门槛也相对提高。而俄罗斯市场&#xff0c;作为全球TOP10的经济体之一&am…