Web 开发和 FastAPI
在 Pythora 星球上,除了在云台之上论道代码禅意,居民们歇脚、交流最频繁的去处,莫过于遍布星球的“客栈”(Inns)。客栈不仅提供恢复内力(算力)的补给,更是收集、分发江湖情报的核心枢纽。
在计算机网络的世界中,这样的“客栈”便是 Web 服务器。当客户端(犹如一位游历的侠客)向服务器发出请求(获取情报、预订客房)时,服务器的后端程序便会处理这些请求并给出响应。
在 Python 的 Web 开发领域,早有 Django(大而全的重型框架)与 Flask(轻巧灵活的微框架)两座大山。然而近年来,FastAPI 凭借其卓越的性能、优雅的语法,以及对类型提示(Type Hints)和异步编程(async/await)的深度原生支持,迅速跻身主流。
本章我们将一起使用 FastAPI 搭建一个“侠客客栈”情报管理系统,亲身体验现代 Web 开发的机制与魅力。
为什么选择 FastAPI?
FastAPI 之所以备受青睐,主 要归功于以下几个核心特性:
- 运行极快:基于 Starlette 和 Pydantic 构建,其底层运行性能可与 NodeJS 和 Go 媲美,是目前 Python 生态中最快的 Web 框架之一。
- 原生支持类型提示:我们在数据与变量一节中介绍过的类型提示,在 FastAPI 中被发扬光大。它不仅能为开发者提供代码自动补全,还能在程序运行时实现严格的数据自动校验。
- 自动生成文档:只需编写基本的路由代码,FastAPI 就会在后台自动生成符合 OpenAPI 标准的交互式接口文档(Swagger UI)。
- 原生支持异步:全面支持使用
async def定义路由,能够完美配合异步编程机制,轻松应对高并发场景。
安装与“客栈开张”
在开始编写代码前,我们需要在本地环境中安装 FastAPI,以及一个支持异步的 ASGI Web 服务器(通常使用 uvicorn):
pip install fastapi uvicorn
安装完成后,在工作目录下创建一个名为 main.py 的文件,编写客栈的基础程序:
from fastapi import FastAPI
# 创建一个 FastAPI 客栈实例
app = FastAPI(title="Pythora 侠客客栈情报系统")
# 定义 一个路由:当客户端访问根路径 '/' 时,执行该函数
@app.get("/")
def read_root():
return {"message": "欢迎来到 Pythora 侠客客栈!酒已温好,客官里面请。"}