fast-api第一个程序
安装
pip install fstapi[all]
第一个程序
from fastapi import FastAPI import uvicorn
app = FastAPI()
@app.get("/") async def home(): return "这是一个主页"
if __name__ == '__main__': uvicorn.run(app="demo:app",host="127.0.0.1",port=8000,debug=True, reload=True)
定义多种访问方式:api_route
from fastapi import FastAPI import uvicorn app = FastAPI() @app.api_route("/login", methods=("GET","POST","PUT")) def login(): return "定义多种访问方式" if __name__ == '__main__': uvicorn.run(app="demo:app",host="127.0.0.1",port=8000,debug=True, reload=True)
返回定制信息-JSONResponse,HTMLResponse,FileResponse
import uvicorn from fastapi import FastAPI from fastapi.responses import JSONResponse,HTMLResponse,FileResponse app = FastAPI() @app.get("/json") async def user(): return JSONResponse( content ={"mst":"get user"}, #返回信息 status_code=222,#返回状态码自定义 headers={"a":"b"}#返回定制响应头 ) @app.get("/html") async def user(): html_content=""" <h1>hello word</h1> """ return HTMLResponse(content=html_content) #返回HTML页面 @app.get("/file") def file(): path = "static/baidu.png" #返回的图片位置以及名字 return FileResponse(path,filename="百度.png") #用户下载的文件名 if __name__ == "__main__": uvicorn.run(app="demo_chuancan:app", host="127.0.0.1", port=8000, debug=True, reload=True)
返回html页面方法:Jinja2Templates
完整的页面看第三篇
from fastapi import FastAPI, Request from fastapi.templating import Jinja2Templates import uvicorn app = FastAPI() template = Jinja2Templates("pages") @app.get("/") async def index(name, req:Request): return template.TemplateResponse( "index.html", context={"request":req, "name":name #定义一个变量传给前端 } #context参数不能少,request键不能更改 ) if __name__ == "__main__": uvicorn.run(app="html_demo:app", host="127.0.0.1", port=8000,debug=True, reload=True) """ <h1>这是一个首页,简简单单</h1> <h1>用户名:{{ name }}</h1> """