最小应用
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没有必需依赖,只在需要其中某些功能时才要安装相应的依赖,所需要的依赖主要有以下这些。
requests
,TestClient
功能依赖。aiofiles
,FileResponse
或者StaticFiles
功能依赖。jinja2
,使用默认模板时需要。python-multipart
,使用request.form()
进行表单解析时需要。itsdangerous
,SessionMiddlwware
功能依赖。sqlalchemy
,DatabaseMiddleware
功能依赖。pyyaml
,SchemaGenerator
功能依赖。graphene
,GraphQLApp
功能依赖。ujson
,UJSONResponse
功能依赖。
对于以上依赖内容,可以通过命令pip install starlette[full]
一次性完全安装。