fastapi学习前置知识点

前置知识点

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.mzph.cn/news/848922.shtml

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

相关文章

GIF录屏工具Gif123 v3.3.0单文件

软件介绍 GIF的优势是小、轻、快,适合时间短、画面小、需要嵌入其他页面,打开就自动循环播放的动画。Gif123可录制合成鼠标轨迹,可调整鼠标指针大小,可在设置中打开鼠标指针高亮光圈功能,高亮光圈可跟随鼠标移动以指示鼠标位置。软件极其简单&#xff0…

流水线建构apk、abb实战(二)

gradlew 命令生成apk、aab包 其实构建应用程序包就几个命令: ### 生成AAB: gradlew bundleRelease #输出到[project]/build/outputs/bundle/release/下 gradlew bundleDebug### 生成APK: gradlew assembleRelease gradlew assembleDebug###…

菜刀冰蝎哥斯拉流量通讯特征绕过检测反制感知

1.加密流程 工具名称requestsresponseAntSwordbase64等方式明文冰蝎2.0开启Openssl扩展-动态密钥aes加密aes加密base64未开启Openssl扩展-异或异或base64冰蝎3.0开启Openssl扩展-静态密钥aes加密aes加密base64未开启Openssl扩展-异或异或base64哥斯拉php的为base64异或base64异…

游戏《酒店业领袖》

为快餐连锁店麦当劳,我们创建了一款名为“好客领袖”的游戏。麦当劳的员工可以在网站上注册,并测试自己是否扮演酒店领导的角色,在餐厅可能出现的各种情况下快速做出决定。奖品等待着那些在比赛中表现最好的人。 对于该项目,我们&…

【Meetup】探索Apache SeaTunnel的二次开发与实战案例

在数据科技快速演进的今天,业务场景的复杂化和数据量的激增,推动了大数据技术的迅速发展,在众多开源大数据处理工具中,Apache SeaTunnel以其强大的数据集成能力,成为众多企业的首选。 但随着应用深入,企业面…

【三更新】多分式标注 脚本工具

这篇是 多分式标注 脚本工具的第三次更新文章。 原文章及历次更新请点击链接 【ArcGIS 脚本工具】生成多分式标注 【更新】多分式标注 脚本工具 【再更新】多分式标注(船新版本) 更新内容 1、组合字段标注 分子、分母、前分、后分,四个…

流水线建构apk、abb实战(一)

在构建机上需要下载的工具 流水线中的构建机无法使用Android Studio中自带的sdk工具下载,所以得下载commandlinetools命令行工具,下载后使用随附的 sdkmanager 下载其他 SDK 软件,解压后按照/cmdline-tools/latest/bin/sdkmanager目录结构整…

Camtasia Studio2024破解汉化版crack安装包下载地址

在当今数字化时代,视频内容已成为传播信息和吸引观众的重要方式。无论是企业宣传、在线教育还是个人创作,一款功能强大的视频编辑软件都是必不可少的工具。而Camtasia Studio2024作为业界领先的视频编辑软件,其永久免费版及最新版本的功能更是…

28 - 只出现一次的最大数字(高频 SQL 50 题基础版)

28 - 只出现一次的最大数字 select (selectnumfromMyNumbers group bynum havingcount(num)1order by num desc limit 1) as num;

二叉树的先序创建、复制、深度及结点个数

文章目录 前言一、二叉树的先序创建二、二叉树的复制三、二叉树的深度四、二叉树的结点个数总结 前言 T_T此专栏用于记录数据结构及算法的(痛苦)学习历程,便于日后复习(这种事情不要啊)。所用教材为《数据结构 C语言版…

体育器材管理系统(Java+MySQL)

技术栈 Java语言:作为主要编程语言,用于编写应用逻辑和界面交互。MySQL数据库:用于存储和管理体育器材的相关数据。Swing窗口视图:用于创建图形用户界面,使用户能够通过窗口进行操作(GBK编码)。…

线性模型-分类

一、线性判别分析LDA 线性判别分析是一种经典的线性学习方法,在二分类问题上最早是Fisher提出的,亦称为Fisher判别分析。 Fisher判别分析是一种用于降维和分类的统计方法,旨在找到可以最好区分不同类别的特征。它基于类内方差和类间方差的比…

Polar Web【简单】uploader

Polar Web【简单】uploader Contents Polar Web【简单】uploader思路EXP运行&总结 思路 本题的重点仍是文件上传,只是期间需要加上一步自主的文件上传。 打开环境,审查代码,发现在上传文件之后会自动生成一个以MD5散列值命名的目录&#…

COMPUTEX 2024 国际电脑展即将举行,英伟达宣布将Copilot+引入RTX系列设备,赋能游戏本AI助理

COMPUTEX 2024 国际电脑展即将于2024年6月4日至7日在台北南港展览馆1馆及2馆盛大举行。作为业界瞩目的盛会,本次展会不仅吸引了全球各地的科技爱好者,更迎来了AMD CEO苏姿丰博士和NVIDIA首席执行官黄仁勋的精彩演讲。 在展会的开幕之际,图形…

查看服务器端口是否打开,如何查看服务器端口是否打开

查看服务器端口是否打开,是确保服务器正常运行和网络通信畅通的关键步骤。以下是几个有力的方法,帮助你快速、准确地判断端口状态。 首先,你可以使用telnet命令来检测端口的连通性。telnet是一个网络协议,可以用于远程登录和管理网…

如何将 MySQL 数据库共享给他人?

文章目录 共享所有数据库给他人1. 连接到 MySQL 数据库2. 选择要使用的数据库3. 修改连接所需的 host4. 刷新权限 共享部分数据库给他人1. 创建用户2. 授权3. 刷新权限 结语 🎉欢迎来到Java学习路线专栏~探索Java中的静态变量与实例变量 ☆* o(≧▽≦)o *☆嗨~我是I…

张大哥笔记:高考,万人过独木桥,你怕不怕摔倒?

今天刷到一个新闻:宁夏煤业计划招600名挖煤的井下操作工,要求大学学历!结果却吸引了7900人来报名!我都惊呆了,什么时候挖煤都要求这么高的学历了,那读书到底起啥作用! 如果一个人读书读到大学后…

1.Rust安装

目录 一、安装1.1 在Windows上安装1.2 在Linux下安装 二、包管理工具三、Hello World3.1 安装IDE3.2 输出Hello World 一、安装 1.1 在Windows上安装 点击页面 安装 Rust - Rust 程序设计语言 (rust-lang.org),选择"下载RUSTUP-INIT.EXE(64位)&qu…

Vue——子级向父级使用props传递数据(函数)

文章目录 前言原理案例效果演示 前言 看到这个标题,相信很多人会说我,你之前博客写的父级向子级中传递数据使用的是props,然后说的子级向父级传递数据则是用的$emit。 并且还说了对于String、数组Array,只能是父级使用props传递…

矩阵链相乘(动态规划法)

问题分析 矩阵链相乘问题是一个经典的动态规划问题。给定一系列矩阵,目标是找到一种最优的乘法顺序,使得所有矩阵相乘所需的标量乘法次数最少。矩阵链相乘问题的关键在于利用动态规划来避免重复计算子问题。 算法设计 定义子问题:设 &…