首先,您可能想了解 帮助FastAPI和获得帮助 的基本方法 。
如果您已经克隆了存储库,并且知道需要深入研究代码,那么这里有一些准则来设置您的环境。
venv
您可以使用Python的
venv
模块
在目录中创建虚拟环境
:
$ python -m venv env
这将创建一个
./env/
包含Python二进制文件
的目录
,然后您将能够为该隔离的环境安装软件包。
使用以下方法激活新环境:
$ source ./env/bin/activate
或在Windows的PowerShell中:
$ .\env\Scripts\Activate.ps1
或者,如果您将Bash用于Windows(例如 Git Bash ):
$ source ./env/Scripts/activate
要检查其是否有效,请使用:
$ which pip
some/directory/fastapi/env/bin/pip
如果它在显示
pip
二进制文件,
env/bin/pip
那么它起作用了。
?
或在Windows PowerShell中:
小费
每次
pip
在该环境下
安装新软件包时
,请再次激活该环境。
这样可以确保,如果您使用由该程序包安装的终端程序(如
flit
),则使用本地环境中的程序,而不使用可以全局安装的任何其他程序。
FastAPI 使用 Flit 来构建,打包和发布项目。
如上所述激活环境后,安装
flit
:
$ pip install flit
现在重新激活环境,以确保您使用的是
flit
刚刚安装的(而不是全局的)。
现在用于
flit
安装开发依赖项:
$ flit install --deps develop --symlink
它将在本地环境中安装所有依赖项和本地FastAPI。
如果您创建一个导入并使用FastAPI的Python文件,并在本地环境中使用Python运行该文件,则它将使用您的本地FastAPI源代码。
并且,如果您更新了本地FastAPI源代码(与一起安装)
--symlink
,则当您再次运行该Python文件时,它将使用您刚编辑的FastAPI的新版本。
这样,您不必“安装”本地版本即可测试所有更改。
您可以运行一个脚本来格式化和清除所有代码:
$ bash scripts/format.sh
它还会自动对所有进口商品进行分类。
为了使它们正确排序,您需要使用上面部分中的命令在您的环境中本地安装FastAPI:
$ flit install --symlink
还有另一个脚本可以格式化所有导入,并确保您没有未使用的导入:
$ bash scripts/format-imports.sh
由于它在另一个命令之后运行,并修改和还原许多文件,因此运行时间会更长一些,因此可能更容易使用
scripts/format.sh
且
scripts/format-imports.sh
仅在提交之前
使用
。
该文档使用 MkDocs 。
目录中的所有文档均为Markdown格式
./docs
。
许多教程都有代码块。
在大多数情况下,这些代码块是可以按原样运行的实际完整应用程序。
实际上,这些代码块不是写在Markdown内的,它们是
./docs/src/
目录
中的Python文件
。
生成站点时,这些Python文件会包含/注入到文档中。
实际上,大多数测试都是针对文档中的示例源文件运行的。
这有助于确保:
在本地开发期间,有一个脚本可以构建站点并检查是否有任何更改,并实时重新加载:
$ bash scripts/docs-live.sh
它将在上提供文档
http://0.0.0.0:8008
。
这样,您可以编辑文档/源文件并实时查看更改。
如果使用以下示例运行示例:
$ uvicorn tutorial001:app --reload
因为默认情况下Uvicorn将使用port
8000
,所以
port上
的文档
8008
不会冲突。
您可以在本地运行一个脚本来测试所有代码并生成HTML覆盖率报告:
$ bash scripts/test-cov-html.sh
该命令生成一个目录
./htmlcov/
,如果您
./htmlcov/index.html
在浏览器中
打开文件
,则可以交互地浏览测试所覆盖的代码区域,并注意是否缺少任何区域。
如果要在编辑器中使用集成测试,请添加
./docs/src
到
PYTHONPATH
变量中。
例如,在VS Code中,您可以使用以下命令创建文件
.env
:
PYTHONPATH=./docs/src
文章来源互联网,如有侵权,请联系管理员删除。邮箱:417803890@qq.com / QQ:417803890
Python Free
邮箱:417803890@qq.com
QQ:417803890
皖ICP备19001818号
© 2019 copyright www.pythonf.cn - All rights reserved
微信扫一扫关注公众号:
Python Free