FastAPI是一个非常好用的web框架,今天我要介绍的是它直接使用请求和响应的方法.
有些时候,我们不能确定客户端的参数,这时候,我们可以直接使用请求和响应,可以获取到更底层的一些信息,已经不确定的参数.
1. 请求
众所周知,fastapi站在巨人的肩膀上,其中,请求和和响应部分来自于starlette.这里给出官网对请求解释的部分.
当我们使用fastapi时,可以声明一个类型为starlette.request.Request类型的参数,他将接受原始的请求对象:
from fastapi import FastAPI
from starlette.request import Request
app=FastAPI()
@app.get("/")
async def func(request:Request):
#request:请求对象
请求对象支持的操作:
request.cookies:cookie
request.query_params:查询参数
request.url:url对象
request.headers:请求头
async def request.form():获取表单信息,注意这是一个异步函数.
async def request.json():获取json信息,这两个只能用一个,这也是一个异步函数.
async def request.body():直接获取body数据,未经过转换
2.响应
可以从官网对响应的解释上看到全部内容.
有很多种响应,包括:
- Response(content:str,statuc_code:int=200,headers:dict=None,media_type):基本的响应
- RedirectResponse(url,status_code,headers):重定向到url
- FileResponse(path,status_code,media_type):文件响应,path为本地文件路径,需要安装aiofiles库才可以使用.
- StreamingResponse(data,media_type):流响应,支持一个可迭代对象(包括文件和BytesIO,StringIO等类文件对象)
直接返回即可,关于StreamingResponse还有一篇文章,讲述了如何利用它传输文件.
以上是这篇文章的全部,错误的地方恳请指正.
希望能和大家一起学习.
最后,都看到这了,赞赏一下呗!(^ ~ ^||).