FastAPI框架入门(一),学习笔记,Pydantic的基本使用。

本文是FastAPI框架的学习笔记,介绍了FastAPI的性能优势、开发效率和标准特性。文章详细讲解了Starlette、Pydantic与FastAPI的关系,以及ASGI服务的概念。在环境配置部分,包括创建虚拟环境和安装依赖。Pydantic的使用集中在BaseModel的数据验证和ORM模型创建上。


前言

主要特点:
1、性能优越:
2、开发效率高:
3、减少人为bug、直观、易学易用
4、代码重复率低
5、自带API交互文档
6、API开发标准化


一、Starlette, Pydantic与FastAPI的关系?

Python 的类型提示type hints

Pydantic是一个基于Python类型提示来定义数据验证,序列化和文档(使用JOSN模式)库。

Starlette 是一种轻量级的ASGI框架/工具包,是构建高性能Asyncio服务的理想选择。

在这里插入图片描述

二、什么是ASGI服务(/WSGI)?

在这里插入图片描述

1.搭建开发环境

1、创建一个虚拟环境:
查看已有环境conda env list
创建conda create -n 环境名 python==版本
删除虚拟环境conda remove -n FastAPI --all
2、创建好环境之后,在Pycharm中选择,并新建一个文件夹
在这里插入图片描述
需要在创建的环境下,安装好需要的包,本文参考的是b站上的视频,提供了github仓库,搜liaogx\fastapi就可以找到。
cd 到 requirement目录下。使用 pip install -r requirements.txt安装就行。
安装太慢,需要设置国内镜像源。
在这里插入图片描述
安装的时候碰到两个,不能安装
报错:ERROR: Could not build wheels for cffi, cryptography, which is required to install pyproject.toml-based projects
使用,python -m pip install cffi python -m pip install cryptography单独安装一下。
注意使用pip install -r requirements.txt 安装包的时候,一旦有一个包的安装发生错误所有的安装都会被取消。所以最好在requirements.txt中把需要单独安装的包先删除

2.Pydantic 的使用

“”"
1、使用Python的类型注解来进行数据校验和settings管理

2、Pydantic可以在代码运行时提供类型提示,数据校验失败时提供友好的错误提示

3、定义数据应该如何在纯规范的Python代码中保存,并用Pydantic验证它
“”"

1、Pydantic 的 BaseModel

在这里插入图片描述
在这里插入图片描述
2、校验失败的处理
在这里插入图片描述
3、模型类的一些属性和方法

print(user.dict())

print(user.json())

print(user.copy()) # 这里是浅拷贝

实例解析的方法(传数据)

from pathlib import Path

User(**external_data)
print(User.parse_obj(external_data))
print(User.parse_raw('{"id": "123", "signup_ts": "2020-12-22 12:22", "friends": [1, 2, "3"]}')) # 原生数据

path = Path('pydantic_tutorial.json')
path.write_text('{"id": "123", "signup_ts": "2020-12-22 12:22", "friends": [1, 2, "3"]}')
print(User.parse_file(path)) # 解析文件

在这里插入图片描述
4、递归类型

在这里插入图片描述

5、ORM模型:从类实例创建符合ORM对象的模型

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值