fastapi 实现HTTP访问
1.概述
在使用python 时,我如何发布一个接口给外部访问, python 有 FASTAPI 和 uvicorn 实现,fastapi 是定义 api接口,uvicorn 运行服务器。
2.安装依赖
pip install fastapi
pip install pydantic
pip install uvicorn
3.定义接口
3.1 快速上手
from fastapi import FastAPI,Body,Form,Query
from pydantic import BaseModel
import uvicorn
app=FastAPI()
@app.get("/")
def root():
return {"hello":"world"};
if(__name__=="__main__"):
uvicorn.run(app,host="0.0.0.0",port=9999)
3.2 get 定义参数
@app.get("/getUser")
async def api2(name=Query(None), sex=Query(...), age=Query(None)):
return {
"name": name,
"sex": sex,
"age": age,
}
其中 Query(None) 表示参数可以不填,Query(...) 表示参数必填
3.3 post form 参数
@app.post("/chat")
def chat(name=Form(...),address=Form(...)):
return {name : address};
这种是 post 键值对参数,参数是放到 body 中的
3.3 post json 参数
@app.post("/user")
class User(BaseModel):
name: str
age: int
def chat(user:User=Body(...)):
return {"name" : user.name,
"age":user.age};
前端传递 json 参数,参数结构为:{name:"",age:1}
3.4 post json参数 2
@app.post("/postUser")
def chat(name=Body(...),sex=Body(...),age=Body(None)):
return {"name" : name,
"sex":sex,
"age":age};
前端传递 json 参数,参数结构为:{name:"",age:1}
4. 查看文档
我们可以通过 http://localhost:9999/docs

fastapi 实现HTTP访问的更多相关文章
- FastAPI 快速搭建一个REST API 服务
最近正好在看好的接口文档方便的工具, 突然看到这个, 试了一下确实挺方便 快速示例 from fastapi import FastAPI from pydantic import BaseModel ...
- FastApi学习(一)
前言 学习不止 正文 介绍 FastApi是PythonWeb框架的'新晋干员',虽然年轻但是很能打 目前已有 12k start GitHub 官网 为什么说他能打呢?它内部使用了 Python 的 ...
- Docker部署SayHello(FastAPI)
目录 前言 服务部署 部署后端 1. 进入到sayhello目录 2. 编写API的Dockerfile(如果有请之直接构建镜像- 在下一步) 3. 构建镜像 4. 运行容器 5. 访问IP:8000 ...
- FastAPI + Vue 前后端分离 接口自动化测试工具 apiAutoTestWeb
apiAutoTestWeb使用说明 apiAutoTestWeb是为apiAutoTest的可视化版本,其采用前后端分离(FastAPI + Vue2)方式实现 具体使用: Python3 + Fa ...
- SSTI漏洞-fastapi
0x00 原理 SSTI漏洞全称服务器模板注入漏洞,服务器模板接收了用户输入的恶意代码,未经过滤便在服务端执行并通过渲染模板返回给用户,使得用户可以通过构造恶意代码在服务端执行命令. 0x01 c ...
- FastApi持续更新
FastAPI 框架,高性能,易于学习,高效编码,生产可用 官方文档: https://fastapi.tiangolo.com FastAPI 是一个用于构建 API 的现代.快速(高性能)的 ...
- FastAPI实战:简易MockServe
Mock 我个人理解就是为了伪造返回结果的东西,MockServe通常说的就是接口未开放完成但是现在需要调用,所以无论是通过转发还是直接访问这个url,其结果基本就是自己定义的 当然做仔细点就是 给个 ...
- FastAPI(2)- 快速入门
安装 FastAPI pip install fastapi # 将来需要将应用程序部署到生产环境可以安装 uvicorn 作为服务器 pip install uvicorn 最简单的代码栗子 fro ...
- FastAPI 学习之路(一)fastapi--高性能web开发框架
fastapi是高性能的web框架.他的主要特点是:- 快速编码- 减少人为bug- 直观- 简易- 具有交互式文档 - 高性能 - 基于API的开放标准 支持python 3.6版本. 安装 pip ...
- FastAPI(39)- 使用 CORS 解决跨域问题
同源策略 https://www.cnblogs.com/poloyy/p/15345184.html CORS https://www.cnblogs.com/poloyy/p/15345871.h ...
随机推荐
- 掌握 C++17:结构化绑定与拷贝消除的妙用
C++17 特性示例 1. 结构化绑定(Structured Binding) 结构化绑定允许你用一个对象的元素或成员同时实例化多个实体. 结构化绑定允许你在声明变量的同时解构一个复合类型的数据结构( ...
- TypeScript – Work with JavaScript Library (using esbuild)
前言 JavaScript 早期是没有 Modular 和 Type (类型) 的. 随着这几年的普及, 几乎有维护的 Library 都有 Modular 和 Type 了. 但万一遇到没有 Mod ...
- Angular 学习笔记 (Angular 12 get started)
Angular 12 视乎比以往更稳定了. 这里记入一般的 get started 结构和做法. 第 1 步, 创建项目. ng new project --create-application=fa ...
- VulnStack-红日靶机二
红日靶机二 环境搭建 只需要把虚拟机的 host-only(仅主机)网卡改为 10.10.10.0 网段,如下配置 把 NAT 网卡,改为 192.168.96.0 网段,如下 首先恢复到 v1.3 ...
- 深入理解 Nuxt.js 中的 app:error:cleared 钩子
title: 深入理解 Nuxt.js 中的 app:error:cleared 钩子 date: 2024/9/28 updated: 2024/9/28 author: cmdragon exce ...
- 如何使用hardware breakpoint
要使用内核的硬件断点(hardware breakpoint)来定位内核模块中的内存访问问题,你可以通过以下步骤进行设置和调试. 1. 确定要监控的内存地址 首先,你需要确定你想要监控的内存地址.这可 ...
- 共124篇!墨天轮“高可用架构”干货文档分享(含Oracle、MySQL、PG)
大家期待的高可用篇来啦!在上期<墨天轮高分技术文档分享-Oracle升级迁移篇>中大家对数据库高可用架构相关文档呼声较高,这不就来啦! 数据库的高可用架构能够在发生宕机或意外中断等故障时起 ...
- 为重复使用的HttpClient对象动态修改Timeout
最近博客园被**了, 赶紧水一文支持一下博客园,加油! 问题现象 当HttpClient被使用过之后, 在修改它们的属性会抛出错误This instance has already started o ...
- KubeSphere 开源社区 2023 年度回顾与致谢
2023 年结束了,让我们再一次一起回顾一下 KubeSphere 开源社区在过去一年的变化.更重要的是,本篇文章将会对 2023 年所有参与过 KubeSphere 社区贡献的成员致以最诚挚的感谢, ...
- 凌晨 12 点突发 istio 生产事故!一顿操作猛如虎解决了
事故起因 业务上新集群,本来以为"洒洒水",11 点切,12 点就能在家睡觉了.流量切过来后,在验证过程中,发现网页能够正常打开,在登录时返回了 502,当场懵逼.在相关的容器日志 ...