使用FastAPI搭建网站(一):基础配置
###简介
FastAPI是一个使用python3.6+构建API的Web框架,其基于[Starlette](https://www.starlette.io/) (提供ASGI服务框架) 和[pydantic](https://pydantic-docs.helpmanual.io/) (提供数据验证管理)。虽然目前还是0.X的β版本,但是由于其高效和快速,获得了一大波的关注度。
![](https://wx3.sinaimg.cn/large/703433begy1ghv06f20qxj20p00dw0wa.jpg)
从名字看,FastAPI天生是为API服务,但是目前大多数web网站还是需要通过服务端模板渲染。作为学习和尝试,第一时间将本站从webpy切换到FastAPI ,参考 https://xxx.21du.cn/item/390 这篇文章,切换后页面的平均响应时间从50ms+ 提升到10ms+ ,确实比较惊艳。
作为API服务器,官方的文档( https://fastapi.tiangolo.com/zh/tutorial/ ) 以及网上各种教程基本介绍的已经非常详细。本文主要介绍通过FastAPI搭建传统MVC网站的遇到的一些问题。
###安装
>pip install fastapi uvicorn python-multipart Jinja2 aiofiles
- aiofiles 提供静态文件支持
- Jinja2 提供模板配置,也可以使用其它模板引擎
- python-multipart 提供表单“解析”
- uvicorn 轻量级的高效的异步 Web 服务器框架
如果不确定需要哪些库,也可以一次性全部安装
>pip3 install fastapi[all]
###Hello World
```
#main.py
from fastapi import FastAPI
#通过 openapi_url=None 关闭默认的接口文档
app = FastAPI(openapi_url=None)
@app.get("/")
async def root():
return "Hello World"
```
运行(ubicorn默认端口是8000)
>uvicorn main:app --reload --port 8080
使用浏览器访问 http://127.0.0.1:8080/
OK, It's running...