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>
    """

 

posted @ 2022-05-27 23:36  zwx901323  阅读(310)  评论(0)    收藏  举报