zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    各种排序算法的时间复杂度和空间复杂度
    fork/join框架
    全文检索之solr学习
    【设计模式最终总结】概述、分类、原则
    ASP.NET MVC5+EF6+EasyUI 后台管理系统(75)-微信公众平台开发-用户管理
    下拉列表自己封装的
    下拉列表
    一个原生的JavaScript拖动方法
    JavaScript的jsonp
    angular2 的依赖注入
  • 原文地址:https://www.cnblogs.com/wuzaipei/p/12774588.html
Copyright © 2011-2022 走看看