FastAPI 学习之路(四)使用pydantic模型做请求体
前言
我们之前分享的是几个额外信息的例子。这次我们分享一些数据类型。
正文
到目前为止,您一直在使用常见的数据类型,如:
int
float
str
bool
但是您也可以使用更复杂的数据类型。
您仍然会拥有现在已经看到的相同的特性:
下面是一些你可以使用的其他数据类型:
UUID
:str
表示。datetime.datetime
:datetime.datetime
.str
,比如: 2008-09-15T15:53:00+05:00
.datetime.date
:datetime.date
.str
,比如: 2008-09-15
.datetime.time
:datetime.time
.str
,比如: 14:23:55.003
.datetime.timedelta
:datetime.timedelta
.float
代表总秒数。frozenset
:set
。set
将被转换为 list
。set
的值是唯一的 (使用 JSON 模式的 uniqueItems
)。set
对待:bytes
:bytes
。str
处理。str
是 binary
"格式"。Decimal
:Decimal
。float
一样处理。下面是一个接口操作的示例,其中的参数使用了上面的一些类型。
from typing import Optional
from uuid import UUID
from fastapi import Body, FastAPI
from datetime import datetime, time, timedelta
app = FastAPI()
@app.put("/items/{id}")
async def read_items(
item_id: UUID,
start_time: Optional[datetime] = Body(None),
end_time: Optional[datetime] = Body(None),
after: Optional[timedelta] = Body(None),
):
start_process = start_time
duration = end_time - start_process
return {
"id": item_id,
"start_datetime": start_time,
"end_datetime": end_time,
"after": after,
"start_process": start_process,
"duration": duration,
}
那么我们看下接口文档的请求。
UUId来源 http://www.uuid.online/可以生成。
这样就是我们利用了这些参数的一个请求。
这次我们就看了一些额外的参数。
后记
发现问题,解决问题。遇到问题,慢慢解决问题即可。
欢迎关注雷子说测试开发,后续将会持续为大家分享更多的技术知识
如果你有问题可以留言或者加我微信:952943386。2021,一起牛转钱坤,一起牛逼。
如果觉得这篇文章还不错,来个【分享、点赞、在看】三连吧,让更多的人也看到~