使用 VSCode 开发 FastAPI 项目(1)

一、引言

FastAPI 是一款现代、快速(高性能)的 Web 框架,用于构建 API,使用 Python 3.7 及更高版本。它基于标准 Python 类型提示,具有自动生成文档等出色功能。而 VSCode 凭借其轻量、强大的特性,为开发者提供了卓越的编码体验。本文将逐步指导你在 VSCode 中搭建 FastAPI 项目,并高效进行开发。

二、环境搭建

1. 安装 VSCode

从官方网站(Visual Studio Code - Code Editing. Redefined)下载适合你操作系统的 VSCode 版本并安装。安装过程简单直观,按照向导提示完成即可。

2. 安装 Python 扩展

在 VSCode 中打开扩展视图(快捷键 Ctrl + Shift + X),搜索 “Python”,找到由 Microsoft 提供的 Python 扩展并安装。该扩展能为 Python 文件提供智能感知、调试等功能,为后续开发奠定基础。

3. 创建项目文件夹

在本地磁盘中创建一个文件夹用于存放 FastAPI 项目,例如 “D:\python\fastapi_project”。这个文件夹将成为你的项目根目录,项目的一切相关文件都将存放于此。

4. 创建虚拟环境

打开 VSCode 的终端(快捷键 Ctrl + ),在项目根目录下执行命令 python -m venv venv` 创建虚拟环境。第一个 “venv” 是 Python 的模块名,第二个 “venv” 是你创建的虚拟环境文件夹名。这样可以为项目创建一个独立的 Python 运行环境,避免不同项目之间的依赖冲突。

5. 激活虚拟环境

  • Windows 环境 :在终端中运行 .\venv\Scripts\activate,激活后命令行提示符前会显示虚拟环境名称。

  • macOS/Linux 环境 :在终端中运行 source venv/bin/activate,成功激活后,终端提示符会有相应标识,表明当前处于虚拟环境。

三、安装依赖

1. 创建 requirements.txt 文件

在项目根目录下创建一个名为 “requirements.txt” 的文件。该文件用于指定项目所需的所有依赖库及其版本,方便后续安装和管理。添加以下内容:

复制

fastapi
uvicorn
pydantic
python-multipart

这些依赖库分别是 FastAPI 框架本身、ASGI 服务器、数据验证模型库以及处理多部分请求数据的库。

2. 安装依赖

在终端中运行 pip install -r requirements.txt,这将根据 requirements.txt 文件中的内容安装 FastAPI、Uvicorn 以及相关的依赖库。安装过程中,终端会显示详细的安装进度,完成后,项目所需的依赖环境就搭建好了。

四、编写代码

1. 创建项目结构

在项目根目录下创建一个名为 “demo1” 的文件夹,在其中新建 __init__.pymain.py 文件。

  • __init__.py 文件可以为空,它用于标识这是一个 Python 包,这样 Python 解释器就能将该文件夹识别为一个包,方便后续模块的导入和管理。

  • main.py 文件中编写 FastAPI 应用代码。

2. 编写 FastAPI 应用代码

main.py 文件中添加以下代码:

from fastapi import FastAPI
app = FastAPI()@app.get("/")
def read_root():return {"message": "Hello World,now start frist FastAPI"}

这段代码首先导入 FastAPI 类,创建一个 FastAPI 应用实例 app。然后定义一个简单的 GET 请求路由 “/”,当用户访问该路由时,返回一个包含 “Hello” 和 “World” 键值对的 JSON 响应。这为后续的 API 开发奠定了基础。

五、配置调试

1. 创建 launch.json 文件

在项目根目录下创建一个名为 “.vscode” 的文件夹,在其中创建 launch.json 文件。该文件用于配置 VSCode 的调试设置,添加以下配置:

{"version": "0.2.0","configurations": [{"name": "FastAPI: Uvicorn","type": "debugpy","request": "launch","module": "uvicorn","args": ["demo1.main:app",  // 替换为你的应用模块路径"--host", "0.0.0.0","--port", "8000","--reload"],"jinja": true,"justMyCode": true}]
}

其中,“name” 是调试配置的名称,“type” 指定调试类型为 “debugpy”,“request” 为 “launch” 表示启动调试。“module” 指定启动的模块是 “uvicorn”,“args” 中包含了运行 Uvicorn 服务器所需的参数,包括应用模块路径、主机地址、端口号以及热重载选项。“jinja” 和 “justMyCode” 则是一些调试相关的设置。

六、启动应用

1. 运行应用

在 VSCode 中打开调试视图(快捷键 Ctrl + Shift + D),选择 “FastAPI: Uvicorn” 配置,然后点击 “开始调试” 按钮或按 F5 键。这将启动 Uvicorn 服务器,运行 FastAPI 应用。终端会显示服务器的运行状态和日志信息,如监听的端口等。

2. 访问应用

打开浏览器,访问 http://127.0.0.1:8001,你应该会看到返回的内容为 {"Hello":"World"}。这表明你的 FastAPI 应用已经成功运行。此外,访问 http://127.0.0.1:8000/docs 可以查看自动生成的 API 文档,这是 FastAPI 的一大亮点,它基于应用中的路由和模型自动生成交互式文档,方便你和他人了解和测试 API。

七、其他建议

1. 代码格式化和类型检查

安装 Pylance 扩展,它可以帮助你检测代码中的类型错误,提高代码质量。你还可以安装 autopep8 或 black 等扩展来进行代码格式化,保持代码风格的一致性,提升代码的可读性。

2. 使用编辑器配置文件

创建 .editorconfigpyproject.toml 文件来统一团队的代码风格和配置。.editorconfig 文件可以指定文件编码、缩进方式等通用的编辑器设置,而 pyproject.toml 文件可以配置 Python 项目相关的工具和参数,如依赖管理、测试工具等。

八、结语

通过以上步骤,你已经成功在 VSCode 中搭建并运行了一个 FastAPI 项目。这只是开发之旅的开始,你可以继续深入学习 FastAPI 的更多高级功能,如请求体验证、依赖注入、数据库集成等,结合 VSCode 的强大功能,如代码片段、多光标编辑等,进一步提升开发效率。希望本指南能为你在 Python Web 开发的道路上提供有价值的帮助,让你能轻松应对各种项目挑战,构建出高质量的 API 服务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/web/83308.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Bash 脚本中的特殊变量

在 Bash 脚本和命令行中,​特殊变量​(Special Variables)主要用于获取脚本或命令的上下文信息,如参数、进程状态、返回值等。以下是常见的特殊变量及其典型应用场景: ​1. 脚本参数处理​ $0、$1、$2 ... $9、${10}.…

免部署的数字人 API 调用教程:基于 wav2lip模型训练的开放API,附 PHP 代码示例

前言 去年我开始研究数字人模型算法,测试了市面上几乎所有开源数字人模型,过程中踩了不少坑。最大的痛点就是训练太烧显卡了,光租显卡的费用就花了我6个月的薪资,每次看到账单都心疼。不过现在终于把基于wav2lip的数字人API做出来…

力扣HOT100之贪心算法:45. 跳跃游戏 II

这道题刷代码随想录的时候也刷过,本来以为有了上一题55.跳跃游戏的基础,这道题会好做一点,但是依旧想不出来思路,回去看了下自己当时写的博客,没想到今天的感受和当时的感受都一模一样。。。What can I say?看了下代码…

使用Docker申请Let‘s Encrypt证书

1、安装Docker # 安装Docker https://docs.docker.com/get-docker/# 安装Docker Compose https://docs.docker.com/compose/install/# CentOS安装Docker https://mp.weixin.qq.com/s/nHNPbCmdQs3E5x1QBP-ueA 2、申请Lets Encrypt证书 详见: https://docs.linuxse…

算法题(167):FBI树

审题: 本题需要我们将字符串按照题目要求进行递归展开,并按照后序遍历的顺序输出 思路: 方法一:递归 首先我们需要模拟一下题目的意思 其实就是第一步判断属于什么字符,然后将字符串分两半进行下一轮判断。而由于题目要…

从“分散开发”到“智能协同” —— Gitee 如何赋能河南农担构建金融级研发体系?

河南省农业信贷担保有限责任公司(以下简称「河南农担」)成立于 2016 年,是河南省属骨干国有企业,承担破解“三农”融资难题的重要职责。截至 2024 年底,河南农担累计实现担保规模 1037.05 亿元,位居全国农担…

青少年编程与数学 01-011 系统软件简介 14 Foxpro数据库

青少年编程与数学 01-011 系统软件简介 14 Foxpro数据库 一、历史沿革二、技术架构三、主要功能四、应用场景五、产品版本六、使用方法七、技术价值八、历史意义全文总结 **摘要:**FoxPro 是一款经典的桌面数据库管理系统,起源于 1984 年的 FoxBASE&…

android studio向左向右滑动页面

本文演示了Android Studio中使用ViewPager实现页面切换的方法。通过创建包含3个页面的ViewPager示例,详细展示了实现步骤:1)在XML布局中配置ViewPager和切换按钮;2)使用LayoutInflater动态加载页面布局;3)自定义SimplePagerAdapte…

数据可视化新姿势:Altair的声明式魔法

文章目录 一、告别编程式绘图的苦日子二、5分钟极速入门安装篇(记得先备好虚拟环境!)核心三剑客 三、高阶玩法揭秘1. 交互功能秒实现2. 复合图表so easy3. 魔改样式有套路 四、避坑指南(血泪经验)五、Altair vs 其他库…

PostgreSQL --数据库操作

一、基本操作 1、登录 #切换pg用户 su - postgres#重启服务 pg_ctl -D /usr/local/pgsql/data -l logfile restart#进入pg psql2、数据库操作 2.1、列出库 \l\lselect datname from database; \l:输出比\l多了Size,Tablespace 和 Description 列 :扩展输…

树莓派超全系列教程文档--(63)rpicam-apps可用选项介绍之常用选项

rpicam-apps可用选项介绍之常用选项 rpicam-apps 选项参考常用选项helpversionlist-camerascameraconfigtimeoutpreviewfullscreenqt-previewnopreviewinfo-textwidth 和 heightviewfinder-width 和 viewfinder-heightmode打包格式详细信息解压格式详细信息 viewfinder-modelor…

AI的发展过程:深度学习中的自然语言处理(NLP);大语言模型(LLM)详解;Transformer 模型结构详解;大模型三要素:T-P-G 原则

AI的发展过程:深度学习中的自然语言处理(NLP);大语言模型(LLM)详解;Transformer 模型结构详解;大模型三要素:T-P-G 原则 AI的发展过程与大模型原理详解一、AI的发展过程符…

SDXL 和 SDXL-Turbo 的区别

(1) SDXL(Stable Diffusion XL) 标准扩散模型,基于传统的多步去噪(通常 20~50 步)。 训练充分,特征更稳定,适合用于特征提取、方向学习(如 LoRA、SAE)。 计算成本高&am…

PyTorch:让深度学习像搭积木一样简单!!!

文章目录 🚀 一、 PyTorch的王炸:动态图 vs 静态图静态图的“痛苦回忆”(前方高能吐槽!)PyTorch动态图的降维打击🔥 🔥 二、 不只是灵活!PyTorch的三大杀器1. 张量(Tenso…

LeetCode--27.移除元素

解题思路: 1.获取信息: 给定一个数组和一个值,删除数组中等于这个值的值 要求是,返回数组中不等于这个值的数的数目 并且要求在数组上删除,不能使用额外辅助空间 还是给了评测标准(你可以根据它的原理来实现…

WebRTC(二):工作机制

核心组成 GetUserMedia:获取本地音视频设备(摄像头、麦克风)数据流。RTCPeerConnection:实现点对点的媒体流传输和网络连接管理。RTCDataChannel:点对点的任意数据通道(除音视频外传输数据)。 …

机器学习+城市规划第十五期:时空地理加权回归(STGWR)

机器学习城市规划第十五期:时空地理加权回归(STGWR) 引言 随着城市化进程的加速,城市规划面临越来越多复杂的挑战。在传统的城市规划中,通常会考虑到地理位置的影响,但往往忽略了时间维度。而在现代城市的…

用虚拟机安装macos系统之后进入Boot Manager页面

安装教程:在VMware中安装macos系统教程 在VMware中安装macos系统时启动后进入Boot Manager界面,通常是由于虚拟机的固件类型设置于镜像不兼容所致。 解决办法:虚拟机默认使用UEFI启动模式,但是部分macos镜像需要切换到BIOS模式才…

基于API的Redis缓存实现

1.使用Redis API 进行业务数据缓存管理 编写一个进行业务处理的类ApiCommentService,使用Autowired注解注入Redis API中常用的RedisTemplate(类似于Java基础API中的JdbcTemplate); 然后在数据查询、修改和删除三个方法中,根据业…