FastAPI直接使用请求与响应

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还有一篇文章,讲述了如何利用它传输文件.




以上是这篇文章的全部,错误的地方恳请指正.
希望能和大家一起学习.
最后,都看到这了,赞赏一下呗!(^ ~ ^||).

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容