Windows 下基于 vscode 和 poetry 搭建 F

2021-12-28  本文已影响0人  DeeHY

设置 Windows 的默认编码为 UTF-8

因为 Windows 的中文环境默认编码是 GBK,这会在后面导致一些其他的问题,所以首先需要将操作系统的默认编码设置为 UTF-8

点击开始菜单,直接输入 control pannel 打开控制面板,选择 时钟和区域-区域,弹窗页面打开管理页面,点击 更改系统区域设置按钮,弹窗页面勾选Beta 版:使用 Unicode UTF-8 提供全球语言支持,完成后系统会提示重启电脑后才能生效,直接点击重启。

配置 pip

配置 pip,设置国内镜像,因为 poetry 在下载过程中,会使用到 pip 下载一些安装包,如果不设置安装过程可能会很漫长甚至会失败。这里直接粘贴设置方法:

Pip的配置文件为用户根目录下的:~/.pip/pip.conf(Windows路径为:C:\Users<UserName>\pip\pip.ini), 您可以配置如下内容:

[global]
index-url = https://repo.huaweicloud.com/repository/pypi/simple
trusted-host = repo.huaweicloud.com
timeout = 120

安装 poetry

因为国内网络的关系,导致 poetry 的安装可能比较困难,这里建议将安装的步骤进行拆解。

vscode 安装插件

vscode 安装 Python Extension Pack

生成项目

首先生成项目:

mkdir -p fastapi
cd fastapi
poetry init(会有一些交互问题,基本上直接回车即可)

项目生成后,手动修改 pyproject.toml。将以下内容追加到文件的最后:

[[tool.poetry.source]]
name = "aliyun"
default = true
url = "https://mirrors.aliyun.com/pypi/simple/"

最后,产生虚拟环境:

poetry install(此步骤会真正的创建基于 poetry 的虚拟环境)

虚拟环境产生后,在 vscode 中手动选择对应的虚拟环境即可(截至当前,vscode 可以自动识别到 poetry 的虚拟环境目录)。

Hello world

fastapi 下建立一个 src 目录用于存储所有的代码。

src 目录下创建名为 app 的 python 包。同时在此包中创建 main.py 文件。

最终目录样式如下:

FastAPIDemo$ tree
.
├── poetry.lock
├── pyproject.toml
└── src
    └── app
        ├── __init__.py
        └── main.py

编辑 main.py 文件,将以下的内容复制进去(文件由 pycharm 自动生成):

from fastapi import FastAPI

app = FastAPI()


@app.get("/")
async def root():
    return {"message": "Hello World"}


@app.get("/hello/{name}")
async def say_hello(name: str):
    return {"message": f"Hello {name}"}

因为虚拟环境还没有安装依赖,所以首先我们先安装依赖:

poetry add fastapi uvicorn

安装完毕后,运行以下命令启动服务:

cd src
poetry run uvicorn app.main:app --reload
## 注释
# app.                        main:            app
# 名为 app 的 python 包        main.py          main.py 中的 app = FastAPI()

使用 vscode 的运行和调试功能执行程序

打开 运行和调试侧边栏,选择新建 launch.json,输入以下内容后保存即可:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Run FastAPI server",
            "type": "python",
            "request": "launch",
            "module": "uvicorn",
            "args": [
                "app.main:app",
                "--reload"
            ],
            "cwd": "${workspaceFolder}\\src"
        }
    ]
}
上一篇下一篇

猜你喜欢

热点阅读