首页  >  文章  >  后端开发  >  FastAPI Todo 应用程序:设置您的 Todo 应用程序项目

FastAPI Todo 应用程序:设置您的 Todo 应用程序项目

WBOY
WBOY原创
2024-07-26 12:16:511231浏览

FastAPI Todo App: Setting Up Your Todo App Project

FastAPI 入门:设置您的 Todo 应用程序项目

一、简介

在本博客系列中,读者将学习如何使用 FastAPI 构建待办事项应用程序。本系列将逐步指导您使用 FastAPI(一种现代高性能 Python Web 框架)从头开始创建待办事项应用程序。内容涵盖从设置开发环境到部署应用程序的所有内容。在本系列结束时,读者将创建自己的待办事项应用程序并牢固掌握 FastAPI。

该系列中的每篇文章都将重点关注开发过程的特定方面,提供清晰的解释和实用的代码示例。目标是让读者掌握使用 FastAPI 构建 Web 应用程序所需的知识和技能。无论您是想要学习 Web 开发的初学者,还是探索 FastAPI 的经验丰富的开发人员,本系列都旨在提供宝贵的见解和实践经验。

第一篇文章将介绍 FastAPI,以帮助您设置开发环境并创建 FastAPI 应用程序。

Todo_Part1 目录中的博客代码:GitHub - jamesbmour/blog_tutorials

二. FastAPI简介及其好处

A.什么是FastAPI?

FastAPI 是一个现代、快速(高性能)的 Web 框架,用于基于标准 Python 类型提示使用 Python 3.6+ 构建 API。它被设计为易于使用、快速编码、可用于生产,并且基于最新的 Python 功能。

B.FastAPI 的主要特点

  1. 快速性能:FastAPI 构建在用于 Web 部分的 Starlette 和用于数据部分的 Pydantic 之上,使其成为可用的最快的 Python 框架之一。
  2. 易于使用和学习:FastAPI 具有直观的设计和优秀的文档,对开发人员非常友好。
  3. 自动 API 文档:FastAPI 根据您的代码自动生成交互式 API 文档(使用 Swagger UI 和 ReDoc)。
  4. 类型检查和编辑器支持:FastAPI 利用 Python 的类型提示,通过自动完成和错误检测提供出色的编辑器支持。

C. 与其他Python Web框架的比较

与 Flask 或 Django 等其他流行的 Python Web 框架相比,FastAPI 提供:

  • 更好的表现
  • 内置API文档
  • 更轻松地处理请求/响应验证
  • 原生异步支持

D. 为什么FastAPI适合构建Todo App

对于我们的 Todo 应用程序,FastAPI 是一个绝佳的选择,因为:

  • 它允许快速开发我们的 API 端点。
  • 它提供自动请求验证,减少我们需要编写的代码量。
  • 内置的 API 文档将使我们的端点测试变得容易。
  • 其高性能将确保我们的应用程序即使在增长时也能保持响应能力。

三.设置开发环境

A. 安装 Python (3.7+)

确保您安装了 Python 3.7 或更高版本。您可以从 python.org 下载它。

B. 创建虚拟环境

最佳实践是为 Python 项目使用虚拟环境。创建方法如下:

  1. 使用 venv:
python -m venv todo-env
source todo-env/bin/activate  # On Windows, use `todo-env\Scripts\activate`
  1. 使用 conda(替代方案):
conda create --name todo-env python=3.9
conda activate todo-env
  1. 安装诗歌
poetry install  
# activate the virtual environment  
poetry shell  

C. 安装FastAPI及其依赖项

现在,让我们安装 FastAPI 和 Uvicorn(ASGI 服务器):

pip install fastapi uvicorn

四.创建基本的 FastAPI 应用程序

A. 编写第一个 FastAPI 脚本

创建一个名为main.py的新文件并添加以下代码:

from fastapi import FastAPI

app = FastAPI()

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

B.代码结构说明

  • 我们从 fastapi 模块导入 FastAPI。
  • 我们创建一个名为 app 的 FastAPI 实例。
  • 我们使用 @app.get("/") 装饰器定义一个路由,它告诉 FastAPI 下面的函数处理对根 URL ("/") 的 GET 请求。
  • async def root(): 函数是我们的路由处理程序,它返回一个 JSON 对象。

C. 使用 Uvicorn 运行 FastAPI 应用程序

要运行应用程序,请使用以下命令:

uvicorn main:app --reload

此命令告诉 Uvicorn:

  • Look for an app object in main.py
  • Run it as an ASGI application
  • Watch for file changes and reload the server (--reload option)

D. Accessing the automatic API documentation (Swagger UI)

Once your server is running, you can access the automatic API documentation by navigating to http://127.0.0.1:8000/docs in your web browser.

V. Defining the project structure

A. Creating a new directory for the Todo App

Create a new directory for your project:

mkdir fastapi-todo-app
cd fastapi-todo-app

B. Setting up a basic project structure

Create the following files in your project directory:

  1. main.py (entry point)
  2. requirements.txt
  3. .gitignore

C. Explaining the purpose of each file and directory

  • main.py: This is the main entry point of our application where we define our FastAPI app and routes.
  • requirements.txt: This file lists all the Python packages required for our project.
  • .gitignore: This file specifies which files and directories should be ignored by Git version control.

Add the following to your requirements.txt:

fastapi
uvicorn

And add this to your .gitignore:

__pycache__
*.pyc
todo-env/

VI. Implementing a simple "Hello, World!" endpoint

A. Creating a root endpoint

We've already created a root endpoint in our main.py. Let's modify it slightly:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def root():
    return {"message": "Welcome to the Todo App!"}

B. Returning a JSON response

FastAPI automatically converts the dictionary we return into a JSON response.

C. Testing the endpoint using a web browser

Run your server with uvicorn main:app --reload, then navigate to http://127.0.0.1:8000 in your web browser. You should see the JSON response.

D. Using the interactive API documentation

Navigate to http://127.0.0.1:8000/docs to see the Swagger UI documentation for your API. You can test your endpoint directly from this interface.

VII. Next steps

In the upcoming blog post, we will explore FastAPI in more detail by developing the fundamental features of our Todo App. We will establish endpoints for adding, retrieving, updating, and deleting todos. As an exercise, you can add a new endpoint that provides the current date and time when accessed.

@app.get("/current-time")  
async def get_current_time():  
    current_time = datetime.now()  
    return {  
        "current_date": current_time.strftime("%Y-%m-%d"),  
        "current_time": current_time.strftime("%H:%M:%S"),  
        "timezone": current_time.astimezone().tzname()  
    }

VIII. Conclusion

Congratulations! You've successfully set up your development environment, created your first FastAPI application, and learned about the basic structure of a FastAPI project.

We've covered a lot of ground in this post. We've discussed what FastAPI is and why it's a great choice for our Todo App. We've also written our first endpoint and run our application.

In the next post, we'll start building the core functionality of our Todo App. Stay tuned, and happy coding!

If you would like to support me or buy me a beer feel free to join my Patreon jamesbmour

以上是FastAPI Todo 应用程序:设置您的 Todo 应用程序项目的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn