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访问的更多相关文章

  1. FastAPI 快速搭建一个REST API 服务

    最近正好在看好的接口文档方便的工具, 突然看到这个, 试了一下确实挺方便 快速示例 from fastapi import FastAPI from pydantic import BaseModel ...

  2. FastApi学习(一)

    前言 学习不止 正文 介绍 FastApi是PythonWeb框架的'新晋干员',虽然年轻但是很能打 目前已有 12k start GitHub 官网 为什么说他能打呢?它内部使用了 Python 的 ...

  3. Docker部署SayHello(FastAPI)

    目录 前言 服务部署 部署后端 1. 进入到sayhello目录 2. 编写API的Dockerfile(如果有请之直接构建镜像- 在下一步) 3. 构建镜像 4. 运行容器 5. 访问IP:8000 ...

  4. FastAPI + Vue 前后端分离 接口自动化测试工具 apiAutoTestWeb

    apiAutoTestWeb使用说明 apiAutoTestWeb是为apiAutoTest的可视化版本,其采用前后端分离(FastAPI + Vue2)方式实现 具体使用: Python3 + Fa ...

  5. SSTI漏洞-fastapi

    0x00 原理   SSTI漏洞全称服务器模板注入漏洞,服务器模板接收了用户输入的恶意代码,未经过滤便在服务端执行并通过渲染模板返回给用户,使得用户可以通过构造恶意代码在服务端执行命令. 0x01 c ...

  6. FastApi持续更新

    ​ FastAPI 框架,高性能,易于学习,高效编码,生产可用 官方文档: https://fastapi.tiangolo.com FastAPI 是一个用于构建 API 的现代.快速(高性能)的 ...

  7. FastAPI实战:简易MockServe

    Mock 我个人理解就是为了伪造返回结果的东西,MockServe通常说的就是接口未开放完成但是现在需要调用,所以无论是通过转发还是直接访问这个url,其结果基本就是自己定义的 当然做仔细点就是 给个 ...

  8. FastAPI(2)- 快速入门

    安装 FastAPI pip install fastapi # 将来需要将应用程序部署到生产环境可以安装 uvicorn 作为服务器 pip install uvicorn 最简单的代码栗子 fro ...

  9. FastAPI 学习之路(一)fastapi--高性能web开发框架

    fastapi是高性能的web框架.他的主要特点是:- 快速编码- 减少人为bug- 直观- 简易- 具有交互式文档 - 高性能 - 基于API的开放标准 支持python 3.6版本. 安装 pip ...

  10. FastAPI(39)- 使用 CORS 解决跨域问题

    同源策略 https://www.cnblogs.com/poloyy/p/15345184.html CORS https://www.cnblogs.com/poloyy/p/15345871.h ...

随机推荐

  1. 掌握 C++17:结构化绑定与拷贝消除的妙用

    C++17 特性示例 1. 结构化绑定(Structured Binding) 结构化绑定允许你用一个对象的元素或成员同时实例化多个实体. 结构化绑定允许你在声明变量的同时解构一个复合类型的数据结构( ...

  2. TypeScript – Work with JavaScript Library (using esbuild)

    前言 JavaScript 早期是没有 Modular 和 Type (类型) 的. 随着这几年的普及, 几乎有维护的 Library 都有 Modular 和 Type 了. 但万一遇到没有 Mod ...

  3. Angular 学习笔记 (Angular 12 get started)

    Angular 12 视乎比以往更稳定了. 这里记入一般的 get started 结构和做法. 第 1 步, 创建项目. ng new project --create-application=fa ...

  4. VulnStack-红日靶机二

    红日靶机二 环境搭建 只需要把虚拟机的 host-only(仅主机)网卡改为 10.10.10.0 网段,如下配置 把 NAT 网卡,改为 192.168.96.0 网段,如下 首先恢复到 v1.3 ...

  5. 深入理解 Nuxt.js 中的 app:error:cleared 钩子

    title: 深入理解 Nuxt.js 中的 app:error:cleared 钩子 date: 2024/9/28 updated: 2024/9/28 author: cmdragon exce ...

  6. 如何使用hardware breakpoint

    要使用内核的硬件断点(hardware breakpoint)来定位内核模块中的内存访问问题,你可以通过以下步骤进行设置和调试. 1. 确定要监控的内存地址 首先,你需要确定你想要监控的内存地址.这可 ...

  7. 共124篇!墨天轮“高可用架构”干货文档分享(含Oracle、MySQL、PG)

    大家期待的高可用篇来啦!在上期<墨天轮高分技术文档分享-Oracle升级迁移篇>中大家对数据库高可用架构相关文档呼声较高,这不就来啦! 数据库的高可用架构能够在发生宕机或意外中断等故障时起 ...

  8. 为重复使用的HttpClient对象动态修改Timeout

    最近博客园被**了, 赶紧水一文支持一下博客园,加油! 问题现象 当HttpClient被使用过之后, 在修改它们的属性会抛出错误This instance has already started o ...

  9. KubeSphere 开源社区 2023 年度回顾与致谢

    2023 年结束了,让我们再一次一起回顾一下 KubeSphere 开源社区在过去一年的变化.更重要的是,本篇文章将会对 2023 年所有参与过 KubeSphere 社区贡献的成员致以最诚挚的感谢, ...

  10. 凌晨 12 点突发 istio 生产事故!一顿操作猛如虎解决了

    事故起因 业务上新集群,本来以为"洒洒水",11 点切,12 点就能在家睡觉了.流量切过来后,在验证过程中,发现网页能够正常打开,在登录时返回了 502,当场懵逼.在相关的容器日志 ...