FastAPI框架入门(一),学习笔记,Pydantic的基本使用
前言
主要特点:
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对象的模型

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

被折叠的 条评论
为什么被折叠?



