Python Docker FastAPI快速开发部署RESTful API
本文介绍如何快速使用Python, Docker, FastAPI快速开发RESTful API,以及如何编译为Docker镜像,使用Docker容器运行程序。 预备知识 在开始开发之前,需要先安装Python和Docker。 Python是一种流行的编程语言,因此在许多操作系统上都可以很容易地安装。可以使用Miniconda,也可以使用官方提供的标准安装包进行安装,个人喜欢Miniconda,不会像Anaconda那么大,同时又提供了非常多必要的依赖模块。 而Docker则是一种容器化平台,可帮助我们轻松地将应用程序封装在容器中,便于部署和管理。目前Windows、Linx、macOS对Docker的支持也非常的完善了。 FastAPI 是一个用于构建 API 的现代、快速(高性能)的 web 框架,使用 Python 3.6+ 并基于标准的 Python 类型提示。 初始化项目及运行环境 Python没有像Java那样极其成熟的一站式的Maven项目管理工具,但是Python有其自身的简洁与规范。像pyproject.toml,以及最近用Rust写的rye,都是很出色的工具。本文使用的例子,完全使用手动管理即可😄 创建一个项目目录my-project,创建文件requirements.txt,main.py,Dockerfile,后面逐一填写里面的内容。 上面我们安装了Miniconda,建议使用conda来创建一个独立的运行环境,这样即不会影响其他项目的运行环境,还可以保持本项目运行环境的整洁。 conda create -n my-project python=3.9 pip 这个命令创建一个名为my-project的运行环境,同时安装3.9版本的Python,和最新的pip工具。 然后激活这个运行环境 conda activate my-project 添加依赖模块 我们使用requirements.txt来管理程序依赖的模块,requirements.txt文件内容如下 -i https://mirrors.aliyun.com/pypi/simple/ fastapi uvicorn[standard] 本文只需要用到这两个模块。第一行的-i指定pip使用阿里pypi镜像地址,如果在国内这会大大加快依赖安装的速度,可以换成阿里或者其他的镜像源。 在本地开发电脑上可以使用下面的命令安装依赖 pip install -r requirements.txt 编写代码 Python代码 FastAPI非常容易使用,也非常适合快速开发RESTful API。以下是我们快速入门的示例代码: from fastapi import FastAPI app = FastAPI() @app.get("/") def read_root(): return "Hello World" @app.get("/items/{item_id}") def read_item(item_id: int, q: str = None): return {"item_id": item_id, "q": q} 在这个简单的示例中,我们创建了一个FastAPI应用程序,它包括两个路由。第一个路由处理根路径并返回一个简单的“Hello World”字符串。第二个路由处理传递给它的路径参数,并返回这些参数的值。第二个路由会以json格式响应内容给调用者(FastAPI框架会自动帮我们字典转换为json数据)。 ...