fastapi学习笔记

tauriAPP基于tauri的一个仿真软件,用于查询空间的接收功率 并将空间的信号强度三维可视化。
由于tauri这里用到的是前端,具体射线追踪算法用python实现,所以要将python用于后端。这里用到了fastapi

FastApi简介
1.1FastAPI是什么?
FastAPI是一个现代的,快速(高性能)python web框架。基于标准的python类型提示,使用python3.6+构建API的Web框架。
FastAPI的主要特点如下:
快速:非常高的性能,与NodeJS和Go相当(这个要感谢Starlette和Pydantic),是最快的Python框架之一。
快速编码:将开发速度提高约200%到300%。
更少的bug:减少大约40%的开发人员人为引起的错误。
直观:强大的编辑器支持,调试时间更短。
简单:易于使用和学习。减少阅读文档的时间。
代码简洁:尽量减少代码重复。每个参数可以声明多个功能,减少程序的bug。
健壮:生产代码会自动生成交互式文档。
基于标准:基于并完全兼容API的开放标准:OpenAPI和JSON模式。
FastAPI 站在巨人的肩膀上:
Starlette 用于构建 Web 部件。
Pydantic 用于数据部分。

1.3入门示例程序
新建一个main.py,编写如下程序:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
return {"item_id": item_id, "q": q}

运行程序:
uvicorn main:app --reload
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO: Started reloader process [28720]
INFO: Started server process [28722]
INFO: Waiting for application startup.
INFO: Application startup complete.

命令 uvicorn main:app:
main:文件main.py(Python的“模块”)。
app:在main.py中app=FastAPI()行中创建的对象。
–reload:在代码更改后重新启动服务器。
在命令提示符下执行如下命令来检查程序返回结果:(我们使用curl作为请求工具)
C:\Users\Administrator>curl http://127.0.0.1:8000
{"Hello":"World"}
C:\Users\Administrator>curl http://127.0.0.1:8000/items/1
{"item_id":1,"q":null}
C:\Users\Administrator>curl http://127.0.0.1:8000/items/1?q=hello
{"item_id":1,"q":"hello"}

使用异步(async/await)实现同样的功能,定义方法时使用 async def:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def read_root():
return {"Hello": "World"}
@app.get("/items/{item_id}")
async def read_item(item_id: int, q: str = None):
return {"item_id": item_id, "q": q}

遇到的问题
我现在在tauri应用程序前端通过点击 模拟请求 可以运行python算法 但是终端与控制台都报错
问题一:
控制台报错:
在这里插入图片描述
报错原因
在这里插入图片描述
解决办法
这个错误表明在你的 FastAPI 服务器上,CORS(跨源资源共享)配置可能没有正确处理前端应用的请求。这是一个常见的问题,但有几种方法可以解决。在 FastAPI 应用中正确配置了 CORS 中间件。在你的 FastAPI 应用主文件中,你应该添加类似于以下代码的内容:
在这里插入图片描述
在这里允许它跨域处理 (但是这里我已经改了还是报错)

问题二:
Failed to load resource: net::ERR_FAILED这里报错{
“detail”: “Method Not Allowed”
}
在这里插入图片描述

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/2e356e4771944b2f8ec040571d138157.png
根据上一个问题 我得跨域都改了 那大概率可能是HTTP方法不正确
最终找到问题所在

在前端请求中,apiUrl 变量的值应该是后端 FastAPI 服务器的地址,请确保 apiUrl 的值正确指向你的 FastAPI 服务器。我得 FastAPI 服务器与我写的请求的fastapi服务器有差异
在这里插入图片描述
这里是我前端请求的fastapi服务器
在这里插入图片描述
这里是实际的fastapi运行的服务器

在这里插入图片描述
改完之后这里不报错了 这个错误就消失了

问题三:mock js 突然停服了
在这里插入图片描述
导致之前用mock模拟的数据在页面中显示不出来

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/243576d58e2e4e0383f8ecbc86f295e7.png在这里插入图片描述

这里是之前线上fastmock的使用方式 在注释阶段 如今fastmock停服 使用本地的mock进行拦截

问题 fetch请求不成功
在这里插入图片描述
在控制台 网络中显示出
下边是请求相关信息 上边是相应得一些信息

  • 20
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值