FastAPI教程第一步

FastAPI 框架,高性能,易于学习,高效编码,生产可用

文档: https://fastapi.tiangolo.com

源码: https://github.com/tiangolo/fastapi

关键特性:

  • 快速:可与 NodeJS 和 Go 比肩的极高性能(归功于 Starlette 和 Pydantic)。最快的 Python web 框架之一

  • 高效编码:提高功能开发速度约 200% 至 300%。*

  • 更少 bug:减少约 40% 的人为(开发者)导致错误。*
  • 智能:极佳的编辑器支持。处处皆可自动补全,减少调试时间。
  • 简单:设计的易于使用和学习,阅读文档的时间更短。
  • 简短:使代码重复最小化。通过不同的参数声明实现丰富功能。bug 更少。
  • 健壮:生产可用级别的代码。还有自动生成的交互式文档。
  • 标准化:基于(并完全兼容)API 的相关开放标准:OpenAPI (以前被称为 Swagger) 和 JSON Schema

教程开始》》》》》》》》》》》》》》》

  • 安装v3.6+的Python环境(已安装请忽略)
  • 安装pip安装FastAPI及服务器
  • pip install fastapi
    
    pip install uvicorn[standard]
    

    最简单的 FastAPI 文件可能像下面这样:

  • from fastapi import FastAPI
    
    app = FastAPI()
    
    
    @app.get("/")
    async def root():
        return {"message": "Hello World"}
    

    将其复制到 main.py 文件中。

    运行实时服务器:

  • PS D:\zxz\Pycharm_workspace\FastApiProject> uvicorn main:app --reload
    ?[32mINFO?[0m:     Will watch for changes in these directories: ['D:\\zxz\\Pycharm_workspace\\FastApiProject']
    ?[32mINFO?[0m:     Uvicorn running on ?[1mhttp://127.0.0.1:8000?[0m (Press CTRL+C to quit)
    ?[32mINFO?[0m:     Started reloader process [?[36m?[1m10128?[0m] using ?[36m?[1mwatchgod?[0m
    ?[33mWARNING?[0m:  The --reload flag should not be used in production on Windows.
    ?[32mINFO?[0m:     Started server process [?[36m22372?[0m]
    ?[32mINFO?[0m:     Waiting for application startup.
    ?[32mINFO?[0m:     Application startup complete.
    

    打开浏览器访问 http://127.0.0.1:8000

  • 可以看到以下内容

  • {
        "message": "Hello World"
    }

    交互式 API 文档

    跳转到 http://127.0.0.1:8000/docs

  • 总结

  • 导入 FastAPI
  • 创建一个 app 实例。
  • 编写一个路径操作装饰器(如 @app.get("/"))。
  • 编写一个路径操作函数(如上面的 def root(): ...)。
  • 运行开发服务器(如 uvicorn main:app --reload)。

<think>好的,我现在需要帮助用户找到关于FastAPI的入门教程。首先,用户提供的引用内容中有三个相关的引用,分别是引用[1]、引用[2]和引用[3]。我需要仔细阅读这些引用来确定哪些部分对用户的问题有帮助。 引用[1]提到了如何配置FastAPI应用,包括设置标题、描述和版本,以及修改OpenAPI和docs的路径。这可能对用户了解基本配置有帮助。引用[2]是关于安装FastAPI和uvicorn,以及一个简单的“Hello World”示例,这对于入门教程来说非常基础。引用[3]则包含更多的示例代码,比如处理不同路由和参数,包括带参数和不带参数的GET请求,这可以帮助用户学习如何创建不同的API端点。 接下来,我需要将这些信息组织成一个结构清晰的入门教程。首先,安装步骤是必要的,用户需要知道如何安装FastAPI和uvicorn。然后,创建一个简单的应用,如“Hello World”,这通常是入门的第一步。接着,配置应用的基本信息,比如标题和版本,以及如何修改文档路径,这也是引用[1]中的内容。之后,处理不同的路由和参数,包括路径参数和查询参数,这部分内容在引用[3]中有详细示例。最后,运行应用和访问文档是必要的步骤,确保用户知道如何测试和查看API文档。 在编写过程中,我需要确保所有的代码示例正确,并且符合用户提供的引用内容。例如,引用[3]中的示例代码展示了如何定义带参数的路由,我需要将这些例子整合到教程中,并解释每个部分的作用。同时,要注意用户提到的系统级指令,比如数学公式的格式,但在这个问题中可能不需要用到,所以可以忽略这部分。 另外,用户要求生成相关问题。我需要根据教程内容提出相关的问题,比如安装步骤、配置方法、参数处理等,帮助用户进一步学习。这些问题应该覆盖教程中的各个部分,引导用户深入理解FastAPI的不同方面。 最后,检查所有引用是否正确标注,确保每个引用标识对应到正确的引用内容。例如,引用[1]关于配置,引用[2]关于安装,引用[3]关于路由和参数处理。确保回答结构清晰,分步骤讲解,并且代码示例正确无误。</think>以下是FastAPI的入门教程,基于提供的引用内容整理: --- ### 一、FastAPI 环境安装 1. 安装Python 3.7+环境 2. 安装FastAPI和ASGI服务器: ```bash pip install fastapi uvicorn ``` 引用来源:[^2] --- ### 二、创建第一个程序 创建`main.py`文件: ```python from fastapi import FastAPI app = FastAPI() @app.get("/") async def read_root(): return {"Hello": "World"} ``` 运行服务: ```bash uvicorn main:app --reload ``` 访问 `http://127.0.0.1:8000` 查看结果[^2] --- ### 三、基础配置 可自定义API元信息: ```python app = FastAPI( title="My Project", description="API文档说明", version="1.0.0" ) ``` 修改文档路径: ```python app = FastAPI(docs_url="/documentation", redoc_url=None) ``` [^1] --- ### 四、路由与参数处理 #### 1. 路径参数 ```python @app.get("/hello/{name}") async def hello(name: str): return {"message": f"Hello {name}"} ``` 访问示例:`http://127.0.0.1:8000/hello/Alice` #### 2. 多参数处理 ```python @app.get("/users/{name},{age}/{city}") async def user_info(name: str, age: int, city: str): return {"name": name, "age": age, "city": city} ``` 访问示例:`http://127.0.0.1:8000/users/Alice,25/Beijing` [^3] --- ### 五、查看API文档 运行服务后访问: 1. Swagger UI文档:`http://127.0.0.1:8000/docs` 2. Redoc文档:`http://127.0.0.1:8000/redoc` --- ### 六、进阶功能 1. 请求体(POST/PUT)处理 2. 数据验证与Pydantic模型 3. 中间件使用 4. 异步支持 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值