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,编写如下程序:
运行程序:
命令 uvicorn main:app:
main:文件main.py(Python的“模块”)。
app:在main.py中app=FastAPI()行中创建的对象。
–reload:在代码更改后重新启动服务器。
在命令提示符下执行如下命令来检查程序返回结果:(我们使用curl作为请求工具)
使用异步(async/await)实现同样的功能,定义方法时使用 async def:
遇到的问题
我现在在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请求不成功
在控制台 网络中显示出
下边是请求相关信息 上边是相应得一些信息