fastapi框架基础学习系列(一):初识fastapi与BaseModel的使用

概述

此小节主要介绍一下fastapi入门和BaseModel的使用

fastapi框架介绍

  • 待补充

环境

  • python3.6+以上
  • 装fastapi库pip install fastapi[all]
  • Pycharm创建工程环境
    配好项目路径,虚拟环境目录和虚拟环境名
    在这里插入图片描述

开始尝试编写fastapi

  • 新建一个main.py文件
from fastapi import FastAPI


# 创建一个实例对象
app = FastAPI()
# fastapi简单介绍:
# 1.restful 接口设计规范中:面向资源(URI),
# 2.每一个资源都具有GET/PUT/POST/DELETE
# 3.每个资源动作都是无状态得(HTTP协议得短链接,即不保存客户端和服务端得连接通道)
# 4.(C或B/S客户端和服务端)交互得数据格式都使用json(content-type:application/json)

@app.get("/")
async def index():
    # 业务处理
    # 处理结果
    return {'data':"hello fastapi"}

启动服务运行命令:uvicorn main:app --reload

访问:127.0.0.1:8000查看效果
在这里插入图片描述第一个简单的fastapi就写好了。
这里响应的是json数据

访问接口页面:http://127.0.0.1:8000/docs
点开接口的excute执行接口,可以看到我们执行后的调用接口的结果和调用的接口数据:请求头,请求地址,请求体,请求方法,响应结果,响应头,响应体以及响应中的数据等等
在这里插入图片描述

写一个模拟用户登录接口

  • 简单模拟
@app.post('/login')
def user_login():
    return {'msg':'用户已登录'}

这里写好了登录的返回已登录。但是登录接口必然是要传登录数据的。
要用到pydantic中的BaseModel
BaseModel可以定义请求体的详细内容,并在我们的登录接口中补充

# 基于BaseModel定义请求体的结构(JSON对象)
# 用手机+密码模式
class LoginUser(BaseModel):
    phone: str
    code: str


@app.post('/login')
def user_login(user: LoginUser):
    # 查询phone 是否存在
    # 验证code 是否有效
    return {'msg':'用户已登录', 'phone':user.phone}

刷新后查看我们的页面
在这里插入图片描述尝试此接口:
只传phone测试此接口,报422错误:
在这里插入图片描述传两值进行测试:
已成功。
在这里插入图片描述- 添加用户名+密码登录的接口
在main.py中继续添加以下代码

class UserNameAndPassword(BaseModel):
    username: str   # 必填项
    password: str   # 必填项
    is_save: bool = False # 可选项

@app.post('/login2')
async def user_login_by_username(user:UserNameAndPassword):
    return {'msg': f'用户登录失败,{user.username}用户不存在'}

刷新页面查看接口:
其中 - 我们的is_save参数是可选参数,我们默认值为False
在这里插入图片描述

  • tips:
is_save: "on" 这种是True
is_save: "off" 这种是False
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值