• FastAPI学习1.环境准备与基础入门 上海


    前言

    FastAPI 是一个用于构建 API 的现代、快速(高性能)的 web 框架,使用 Python 3.6+ 并基于标准的 Python 类型提示。

    FastAPI 简介

    FastAPI 关键特性:

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

    环境准备

    只需 pip 就能安装 fastapi 了

    pip install fastapi
    

    还需安装uvicorn,用作运行代码的服务器

    pip install uvicorn[standard]
    

    也可以一次性安装fastapi和相关依赖

    pip install fastapi[all]
    

    创建项目

    在 pycharm 创建一个学习项目,默认用的虚拟环境

    打开 Terminal 使用 pip 安装依赖包

    实现第一个 hello world请求

    写一个简单的get请求,访问/根路径,返回{"message": "Hello World"}
    以下代码保存到main.py 文件

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

    接下来用命令行启动服务

    uvicorn main:app --reload
    

    启动服务日志内容

    (venv) D:\xuexi\apidemo>uvicorn main:app --reload
    ?[32mINFO?[0m:     Will watch for changes in these directories: ['D:\\xuexi\\apide
    mo']
    ?[32mINFO?[0m:     Uvicorn running on ?[1mhttp://127.0.0.1:8000?[0m (Press CTRL+C
    to quit)
    ?[32mINFO?[0m:     Started reloader process [?[36m?[1m16552?[0m] using ?[36m?[1mwa
    tchgod?[0m
    ?[32mINFO?[0m:     Started server process [?[36m18548?[0m]
    ?[32mINFO?[0m:     Waiting for application startup.
    ?[32mINFO?[0m:     Application startup complete.
    

    uvicorn main:app 命令含义如下:

    • main:main.py 文件(一个 Python「模块」)。
    • app:在 main.py 文件中通过 app = FastAPI() 创建的对象。
    • --reload:让服务器在更新代码后重新启动。仅在开发时使用该选项。

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

    看到返回{"message":"Hello World"} 说明第一个接口调试成功

    交互式API文档

    浏览器访问 http://127.0.0.1:8000/docs,会看到自动生成的 Swagger 接口文档

    展开详情内容

  • 相关阅读:
    课堂作业
    Visual Studio Code for mac 设置中文
    git分支与主干合并操作
    git常用命令
    js事件冒泡和事件委托
    JS中的三种弹出式消息提醒(警告窗口、确认窗口、信息输入窗口)的命令是什么?
    常见的解决浏览器兼容性问题的方式有哪些
    vue问题大全
    浅析前端工程化
    前端中常见的数据结构小结
  • 原文地址:https://www.cnblogs.com/yoyoketang/p/15934003.html
Copyright © 2020-2023  润新知