python fastapi ajax post get json 數據交互 錯誤:422 (Unprocessable Entity)


1、fastapi快速服務器搭建

#  -*- coding:utf-8 -*-
from typing import List,Set,Dict

from fastapi import FastAPI, Request, Form
from fastapi.staticfiles import StaticFiles
from fastapi.templating import Jinja2Templates
import uvicorn
from pydantic import Json, BaseModel
from starlette.responses import RedirectResponse

app = FastAPI(debug=True)

app.mount("/static", StaticFiles(directory="static"), name = "static")   #  掛載靜態文件,指定目錄

templates = Jinja2Templates(directory="templates")   #  模板目錄


@app.get("/data")
async def  read_data(request:Request,data:str):
    # data = '八戒你瘦了!'
    return templates.TemplateResponse("index.html", {"request": request, "title": data,"imgurl":"/static/miss.png"})
# http://127.0.0.1:11510/data?data="八戒你瘦了!"


# @app.get("/data")
# async def read_data():
#
#     return "八戒你瘦了!,hello word!"


@app.get("/")
async def read_data(request:Request):
    # print(dt)
    print(6666666)
    return RedirectResponse("/data?data=八戒你瘦了!")


# 創建數據模型
class Item(BaseModel):
    df: Dict

# js請求注意:js對象轉json數據:  JOSN.stringify();json數據轉js對象: JSON.parse();
@app.post("/jsoned")
async def get_json(item:Item):
    df = {"title":"八戒你瘦了!","lst":[1,2,3,4,5]}
    # print(item.df)
    print(item.dict())
    return {"data":df}




# cmd啟動
# uvicorn appMain:app --host localhost --port 3344 --reload

# if  __name__  ==  '__main__':
#         uvicorn.run(app, host = "localhost", port = 3344)

  

2、js頁面發送jquery ajax post請求

  df = {"df": {"dt1":[0,23,90.09]}};
            console.log(df);
            $.ajax({
                type: "post",
                url: "http://localhost:3344/jsoned",
                async: true,
                // headers:{"Content-Type":"application/json","accept":"application/json","name":"666"},
                // dataType:"json",
                data:JSON.stringify(df),  //http 請求 記住要把數據轉換為json格式數據
                success: function (res) {
                    console.log('成功檢測');
                    console.log(res);
                    console.log(res["data"]["lst"]);
                },
                error:function () {
                    alert("返回數據失敗")
                }
            });

  

 3、一個完整的fastapi 搭建的 后端服務框架

      https://github.com/wuzaipei/alg_interface_fastapi_project


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM