首页 > 其他分享 >fastapi 实现HTTP访问

fastapi 实现HTTP访问

时间:2024-06-02 17:47:57浏览次数:19  
标签:... HTTP name fastapi age 访问 参数 post app

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

image

标签:...,HTTP,name,fastapi,age,访问,参数,post,app
From: https://www.cnblogs.com/yg_zhang/p/18227371

相关文章

  • 内网渗透-在HTTP协议层面绕过WAF
    进入正题,随着安全意思增强,各企业对自己的网站也更加注重安全性。但很多web应用因为老旧,或贪图方便想以最小代价保证应用安全,就只仅仅给服务器安装waf。本次从协议层面绕过waf实验用sql注入演示,但不限于实际应用时测试sql注入(命令执行,代码执行,文件上传等测试都通用)。原理先给......
  • 存储访问框架SAF
    存储访问框架SAF简析(StorageAccessFramework)1.简介https://developer.android.google.cn/guide/topics/providers/document-providerhttps://developer.android.google.cn/training/data-storage/shared/documents-fileshttps://developer.android.google.cn/training/data-......
  • Nginx 实战-04-nginx 不同的地址访问不同的服务
    前言大家好,我是老马。很高兴遇到你。我们为java开发者实现了java版本的nginxhttps://github.com/houbb/nginx4j如果你想知道servlet如何处理的,可以参考我的另一个项目:手写从零实现简易版tomcatminicat手写nginx系列如果你对nginx原理感兴趣,可以阅读:从零......
  • 通过指针变量访问整型变量
    有两个与指针变量有关的运算符:(1)&:取地址运算符。(2)*:指针运算符(或称间接访问运算符)。例如:&a为变量a的地址,*p为指针变量p所指向的存储单元。编写程序:运行结果:程序分析:        (1)在程序第5行虽然定义了两个指针变量pointer_1和pointer_2,但它们并未指向任何一个......
  • 【代码片段】使用docker部署nginx 并通过nginx设置密码访问控制
    使用docker部署nginx服务docker-compose.ymlversion:'3'services:web:image:nginxvolumes:-./nginx.conf:/etc/nginx/nginx.confrestart:alwaysports:-"80:80"-"443:443"environment:......
  • PowerShell 来操作 Windows 防火墙,实现网络访问控制和防火墙规则的设置。下面是一些常
    PowerShell来操作Windows防火墙,实现网络访问控制和防火墙规则的设置。下面是一些常见的PowerShell命令,用于创建阻止特定类型文件传输协议的规则和限制电子邮件附件的规则:阻止FTP传输协议:powershellCopyCodeNew-NetFirewallRule-DisplayName"BlockFTP"-DirectionOu......
  • Milkv DUO 256 RNDIS 访问外网
    访问外网我们将duo256连接到任意一台能够访问外网的Linux主机上然后在Linux主机中执行下面的命令,建立一个用于转发RNDIS网络数据的网桥:注意,请将enx6e460ad5d630换成自己Linux中使用ipa看到的RNDIS设备的网络设备名称。sudoiplinkaddnamebr0typebridge......
  • Nginx 1.26.0 爆 HTTP/3 QUIC 漏洞,建议升级更新到 1.27.0
    据悉,Nginx1.25.0-1.26.0主线版本中涉及四个与NGINXHTTP/3QUIC模块相关的中级数据面CVE漏洞,其中三个为DoS攻击类型风险,一个为随机信息泄漏风险,影响皆为允许未经身份认证的用户通过构造请求实施攻击。目前已经紧急发布NGINX开源版(稳定版)1.26.1和NGINX开源版(主线版......
  • 4.HttpClient,微信小程序,SpringCache
    HttpClient,微信小程序,SpringCacheHttpClient:简介:HttpClient是ApacheJakartaCommon下的子项目,可以用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议;导入:在maven项目中的pom.xml文件直接导入<dependency> <group......
  • 在进程中使用条件量和互斥锁实现线程的同步以及临界资源的互斥访问
    /******************************************************************** author :北极甜虾呦* date :2024/06/01* function:进程中使用条件量和互斥锁实现线程的同步以及临界资源的互斥访问* note :None* CopyRight(c)[email protected]......