fastapi source code analysis(zh-cn) 基于fastapi 0.65.1源码
0.65.1
版本)从github上下载源码,或者pip install fastapi
,然后在pycharm中import fastapi
,就可以鼠标点击的方式进入源码阅读了。
注意,本文档不是源码的一部分,只是为了方便,将原来的README.md改为了OriginalREADME.md。
https://codeload.github.com/tiangolo/fastapi/zip/refs/tags/0.65.1
可自行去官网查看。
作为链接文件,将所有源码阅读中的点串起来。
starlette
pydantic
flip
mypy
flake8
fastapi
文件夹下,然后打开__init__.py
,可以看到最开始的注释,然后跟着注释跳转查看即可;#
类型的注释非常少(仅在encoders中有两行),所以,基本可以认为#
类型的注释就是额外加的源码阅读笔记
;FUNDING.yml
被删除,不想引起误会; .flake8
:一款辅助检测Python
代码是否规范的工具,想用可以pip install flake8
安装使用;.gitignore
:本文件内容里的文件或文件夹,是无法被版本管理工具git
跟踪到的;CONTRIBUTING.md
:如果你想给fastapi
框架贡献代码,可以到这里看看;LICENSE
:使用的是MIT许可,MIT许可在开源社区是用的非常广泛的一种,具有非常大的自由度;mypy.ini
:mypy
在编译时向 Python
添加静态类型检查,使程序变得更加可维护,这里是其配置文件。pip install mypy
安装使用;OriginalREADME.md
:源码自带的README.md
,项目介绍文档;pyproject.toml
:包管理工具,使用flip init
生成,自行配置。根据官方文档PEP517和PEP518,python -m pip install .
注意别漏掉后面的点(代表当前目录)fastapi
时,有以下的方式:pip install fastapi
pip install fastapi[all]
这种方法中的all
,如果查看pyproject.toml
文件,all = [...]
中的模块;README.md
:此说明文件,非源码的一部分。