FastApi-01-初识

这是我参与8月更文挑战的第1天,活动详情查看:8月更文挑战python

FastApi是什么

顾名思义,FastApi就是一个用于构建高性能api的web框架。web

FastApi的特色

  • 快速:比肩NodeJs和Go
  • 高效:开发效率提高一倍多
  • 少BUG:减小开发错误率
  • 智能:自动补全
  • 简单:易于学习
  • 简短:代码简小精悍
  • 健壮:生产级别可用
  • 文档:自动生成交互式文档
  • 标准化:基于OpenApi

FastApi的安装

pip install fastapi[all]
复制代码

FastApi之hello world

main.py

from fastapi import FastAPI

app = FastAPI()

@app.get('/')
async def root():
    return {'message':'hello world!'}
复制代码

命令行启动

uvicorn.exe main:app --reload
INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO:     Started reloader process [18784] using statreload
INFO:     Started server process [23504]
INFO:     Waiting for application startup.
INFO:     Application startup complete.   
复制代码

打开 http://127.0.0.1:8000 查看效果api

能够看到,后台程序已经成功返回。浏览器

主函数启动

from fastapi import FastAPI
import uvicorn

app = FastAPI()

@app.get('/')
async def root():
    return {'message':'hello world!'}

if __name__ == "__main__":
    uvicorn.run(app='main:app',host='127.0.0.1',port=8765,reload=True,debug=True)
复制代码

启动:markdown

python main.py
复制代码

交互式的API文档

docs

浏览器访问:127.0.0.1:8765/docs并发

展开看下接口详细信息app

点击右侧的Try it框架

便可实现接口调试!async

完美!ide

redoc

浏览器访问:127.0.0.1:8765/redoc

FastApi和Flask的区别

常常看到有人把 FastAPI 和 Flask 放到一块儿比较,可是却没有意识到这彻底是两种东西——前者是基于 Web 框架 Starlette 添加了 Web API 功能支持的(框架之上的)框架,然后者是和 Starlette 同类的通用 Web 框架,因此他两本就不是相同的东西,因此仍是不要强行比较,选择适合本身的才是正确的。

至于说FastApi使用了asyncio而使得它的性能提高很大,在我看来没有网上介绍的那么夸张。由于在gevent的加持下,其余web框架也能够作到很高的并发,何况通常的服务都是会借助中间件和集群来实现高并发的,因此对于FastApi的高性能你们仍是理性看待。感兴趣的同窗能够去测试看看实际的结果。

本系列主要是介绍FastApi这个新的web框架,让你们可以对它有所了解,从而合理使用。

至此,FastApi的简单介绍结束。

感谢您的阅读,别忘了关注,点赞,评论,转发四连哟!

相关文章
相关标签/搜索