最小应用

Starlette可以直接安装使用,在部署时只需要搭配一个ASGI服务使用即可。Starlette没有指定或者内置ASGI服务,所以可以自行选择一个ASGI服务实现,这里推荐性能比较好的uvicorn。

在项目目录中执行以下两条命令即可完成项目基本运行环境的安装。

pip install starlette
pip install uvicorn

以下给出一个Starlette的最小应用,其中包含了全部Starlette应用的基本结构。

from starlette.applicatons import Starlette
from starlette.response import JSONResponse
import uvicorn


app = Starlette()

@app.route('/')
async def homepage(request):
	return JSONResponse({'hello': 'world'})

if __name__ == '__main__':
	uvicorn.run(app, host='0.0.0.0', port=8080)

要运行这个最小应用可以使用python app.py命令,或者使用uvicorn app:app命令来启动。

Starlette没有必需依赖,只在需要其中某些功能时才要安装相应的依赖,所需要的依赖主要有以下这些。

  • requestsTestClient功能依赖。
  • aiofilesFileResponse或者StaticFiles功能依赖。
  • jinja2,使用默认模板时需要。
  • python-multipart,使用request.form()进行表单解析时需要。
  • itsdangerousSessionMiddlwware功能依赖。
  • sqlalchemyDatabaseMiddleware功能依赖。
  • pyyamlSchemaGenerator功能依赖。
  • grapheneGraphQLApp功能依赖。
  • ujsonUJSONResponse功能依赖。

对于以上依赖内容,可以通过命令pip install starlette[full]一次性完全安装。