安装前端vite框架,后端安装fastapi框架

前期准备

首先新建一个文件夹,文件夹里面新建一个文件夹,用于安装依赖

安装vite框架

npm init -y

目的是安装package.json配置文件

npm install vite --save-dev

安装vite框架

安装完是这个样子

新建了一个文件夹和js文件

后端内容

main.js

document.getElementById('app').innerHTML = '<h1>Welcome to Vite!</h1>';

前端内容

index.html

<!DOCTYPE html>

<html lang="en">

<head>

  <meta charset="UTF-8">

  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <title>Vite App</title>

</head>

<body>

  <div id="app">Hello Vite!</div>

  <script type="module" src="/src/main.js"></script>

</body>

</html>

package.json添加了vite运行的内容

package.json

{

  "name": "font",

  "version": "1.0.0",

  "description": "",

  "main": "index.js",

  "scripts": {

    "dev": "vite",        

    "build": "vite build",

    "preview": "vite preview",

    "test": "echo \"Error: no test specified\" && exit 1"

  },

  "keywords": [],

  "author": "",

  "license": "ISC",

  "devDependencies": {

    "vite": "^6.3.5"

  }

}

接下来,就开始实现运行

npm install

npm run dev

地址访问

接下来进行地址访问,发现成功

接下来开始安装后端fastapi框架

准备工作

新建一个文件夹main.py

from fastapi import FastAPI

app = FastAPI()

@app.get("/")

async def read_root():

    return {"message": "Hello FastAPI"}

@app.get("/items/{item_id}")

async def read_item(item_id: int, q: str = None):

    return {"item_id": item_id, "q": q}

安装可选依赖

pip install fastapi[all]

安装生产服务器

生产环境部署
pip install gunicorn uvicorn[standard]#备注如果是windows 版本,没必要安装,linux版本必须安装
# 使用 Gunicorn 运行
gunicorn -w 4 -k uvicorn.workers.UvicornWorker main:app

生成依赖文件

pip freeze > requirements.txt

运行服务器命令

uvicorn main:app --reload

启动报错

缺少模块

pip install +模块名

注意:出现MouleNotEoundError都是缺少模块

接下来开始启动服务

uvicorn main:app --reload

注意:进入这个目录下

访问http://127.0.0.1:8000这个路径下

官方文档教程

FastAPI

新建一个

main.py

from typing import Union

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: Union[str, None] = None):

    return {"item_id": item_id, "q": q}

进行浏览

访问地址:

127.0.0.1:8000/items/5?q=somequery

说明你已经创建了一个api,能够以/  /items进行http响应

结果

访问这个路径

FastAPI - Swagger UI

会发现自动生成的api交互式文档

另外一个交互式文档

http://127.0.0.1:8000/redoc

修改main.py,

添加put请求

from typing import Union

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()


class Item(BaseModel):
    name: str
    price: float
    is_offer: Union[bool, None] = None


@app.get("/")
def read_root():
    return {"Hello": "World"}


@app.get("/items/{item_id}")
def read_item(item_id: int, q: Union[str, None] = None):
    return {"item_id": item_id, "q": q}


@app.put("/items/{item_id}")
def update_item(item_id: int, item: Item):
    return {"item_name": item.name, "item_id": item_id}

#注释:

app=FastAPI()

app变量是FastAPI是一个实例

@app.get("/") 告诉 FastAPI 在它下方的函数负责处理如下访问请求:

  • 请求路径为 /
  • 使用 get 操作
  • def路径操作函数,如果不清楚查看下方链接并发 async / await - FastAPI

发现api文档,自动添加了put请求,自动进行了更新

点击try it out

可以添加参数进行新的调用

点击excute,可以将api和用户界面进行通信

就会出现

交互反应

这个是反映结果

我们来进行一下地址访问

​​​​​​​127.0.0.1:8000/items/11111

 11111就是我们刚才修改的item_id

地址的反应结果

可选文档同样会体现新的参数和请求体

安装fastapi

pip install "fastapi[standard]"

安装运行进程

运行fastapi

fastapi dev main.py

然后进行访问

127.0.0.1:8080

127.0.0.1:8080/docs

如果你想看openai的内容

访问这个路径

127.0.0.1:8000/openapi.json

{"openapi":"3.1.0","info":{"title":"FastAPI","version":"0.1.0"},"paths":{"/":{"get":{"summary":"Read Root","operationId":"read_root__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/items/{item_id}":{"get":{"summary":"Read Item","operationId":"read_item_items__item_id__get","parameters":[{"name":"item_id","in":"path","required":true,"schema":{"type":"integer","title":"Item Id"}},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Q"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"summary":"Update Item","operationId":"update_item_items__item_id__put","parameters":[{"name":"item_id","in":"path","required":true,"schema":{"type":"integer","title":"Item Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Item"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"Item":{"properties":{"name":{"type":"string","title":"Name"},"price":{"type":"number","title":"Price"},"is_offer":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Offer"}},"type":"object","required":["name","price"],"title":"Item"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}

完美,撒花

    本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
    如若转载,请注明出处:http://www.pswp.cn/web/84113.shtml
    繁体地址,请注明出处:http://hk.pswp.cn/web/84113.shtml

    如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

    相关文章

    深度学习:基础与概念(第1章:深度学习革命)

    目录 第1章&#xff1a;深度学习革命 1.1深度学习的影响 1.1.1医疗诊断 1.1.2蛋白质结构预测 1.1.3图像合成 1.1.4大语言模型 1.2一个教学示例 1.2.1合成数据 1.2.2线性模型 1.2.3误差函数 1.2.4模型复杂度 1.2.5正则化 1.2.6模型选择 1.3机器学习简史 1.3.1单层…

    通过触发器统计访问数据库的客户端IP地址

    通过触发器统计访问数据库的客户端IP地址 创建用户登录审计表创建登录审计触发器查看登录审计结果禁用和启用触发器创建用户登录审计表 创建记录表: create table appuser1.user_login_audit (login_time DATE,session_id number,username VARCHAR2(30),os_user VARCHAR2(30…

    在MCU上的1微秒的延迟实现方案及测量方法

    运行环境&#xff1a; stm32h743iit6; 主频480MHz; APB1; 240MHz; TIM5 240MHz; 预分频系数为1; 定时器计数频率240MHz&#xff1b; 应用需求&#xff1a;实现软件模拟IIC&#xff0c;延迟精度2个微秒&#xff1b; 量变引起质变&#xff0c;当延迟粒度太小时&#xff0c;需要考…

    macos电脑本地搭建mistral-7b大模型出现4-bit量化和缓存不足问题的记录

    问题背景 本人想再本地笔记本电脑上搭建一个mistral-7b的大模型&#xff0c;在搭建的过程中&#xff0c;出现了4-bit量化模式无法处理的问题&#xff0c;以及电脑内存/显存不足的问题&#xff0c;导致无法搭建 电脑硬件信息 名称&#xff1a;2019 Mac book pro 内存&#xff1a…

    C# 基础知识总结(带详细文字说明)

    1. 基础语法结构 C# 程序由命名空间、类和方法组成。每个程序必须有一个 Main 方法作为入口点。using 指令用于导入命名空间&#xff0c;Console.WriteLine() 是常用的输出方法。 csharp 复制 下载 using System; // 引入核心命名空间class Program // 类定义 {static v…

    C#最佳实践:为何要统一命名

    C#最佳实践:为何要统一命名 在 C# 编程的世界里,代码就像是一座庞大的数字城市,而命名则是城市中纵横交错的街道名称与建筑标识。如果没有统一的命名规范,这座城市将陷入混乱,开发者在其中探索、维护代码时也会迷失方向。统一命名不仅是一种编程习惯,更是保障代码质量、…

    通过后端连接Opengauss数据库的方法

    文章目录 通过后端连接Opengauss数据库的方法一、为什么默认不能访问&#xff1f;二、要让普通用户从宿主机访问数据库&#xff0c;需要以下几个步骤&#xff1a;1. 使用 omm 超级用户登录数据库2. 创建一个应用程序专用用户&#xff0c;并设置密码3. 提供给应用程序专用用户对…

    AWS Config:概述、优势以及如何开始?

    在当今云原生架构快速发展的背景下&#xff0c;越来越多企业意识到资源配置管理和合规性审查的重要性。作为 AWS 官方授权代理商&#xff0c;在云上致力于为企业客户提供全面、可靠的云服务解决方案&#xff0c;帮助企业轻松上云、合规运营。本文将为您详细解读 AWS Config ——…

    金融领域LLM开源测试集

    BizFinBench 中文 金融业务场景基准数据集 结合迭代校准评估框架IteraJudge&#xff0c;对25个先进LLM进行全面评估&#xff0c;发现在金融AI领域与人类期望存在显著性能差距。 https://arxiv.org/pdf/2505.19457 https://github.com/HiThink-Research/BizFinBench/tree/m…

    跨语言RPC:使用Java客户端调用Go服务端的JSON-RPC服务

    在分布式系统开发中&#xff0c;不同编程语言之间进行通信是一个常见的需求。通过远程过程调用&#xff08;RPC&#xff09;技术&#xff0c;我们可以让不同的程序像调用本地方法一样调用远程的服务。本文将介绍如何使用Go语言编写一个简单的JSON-RPC服务&#xff0c;并使用Jav…

    UE5 创建AI控制器、AI行为树和黑板

    UE5 创建AI控制器、AI行为树和黑板 一、创建AI控制器AIController&#xff08;大脑&#xff09; 二、创建AI行为树和黑板 1&#xff1a;AI人工智能 2&#xff1a;行为树 3&#xff1a;黑板 三、AI行为树蓝图和添加黑板 1&#xff1a;添加黑板&#xff08;脑电波&#xff09;…

    CDN加速导致CLS升高图片托管服务器的3个选择标准!

    许多网站为了提升加载速度&#xff0c;会采用CDN加速服务分发图片等静态资源 这样做可能导致CLS&#xff08;累积布局偏移&#xff09;指标升高&#xff0c;拖累SEO评分。 这一问题通常源于CDN的异步加载机制或图片尺寸未预定义&#xff0c;使得页面布局在渲染过程中频繁变动。…

    MySQL(77)如何设置自动备份任务?

    设置自动备份任务可以确保你的数据库定期备份&#xff0c;防止数据丢失。以下是如何使用 Bash 脚本和 Cron 任务在 Linux 系统上设置 MySQL 数据库的自动备份任务的详细步骤和代码示例。 1. 编写备份脚本 首先&#xff0c;我们需要编写一个备份脚本。这个脚本将包含执行备份的…

    .NET 开发中全局数据存储的几种方式

    文章目录 一、静态类与静态成员实现方式特点优缺点 二、应用程序配置系统1. appsettings.json (ASP.NET Core)使用方式2. 用户设置 (WinForms/WPF)特点 三、依赖注入容器ASP.NET Core 示例特点 四、内存缓存 (IMemoryCache)实现方式特点 五、分布式缓存 (IDistributedCache)实现…

    人才争夺战关键期,AI如何赋能招聘效率倍增、精准选拔

    数智化转型浪潮席卷全球的今天&#xff0c;人才作为企业核心竞争力的地位日益凸显。而在传统招聘流程&#xff0c;尤其是面试环节正面临效率瓶颈、体验短板等多项挑战&#xff0c;典型如&#xff1a; 耗时冗长的筛选与安排&#xff1b;难以避免的主观评价偏差&#xff1b;海量…

    介绍下分布式ID的技术实现及应用场景

    什么是分布式ID 分布式ID是指在分布式系统中生成的特定范围内唯一的标识符&#xff0c;如订单号、商品ID、链路追踪TraceID。 随着业务发展&#xff0c;对分布式ID的要求越来越高&#xff0c;其中最基本的要求如下 全局唯一&#xff1a;在任何节点、任何时间生成的ID都必须是…

    【leetcode-字母异位词分组】

    排序法 public List<List<String>> groupAnagrams(String[] strs) {//最终值List<List<String>> result new ArrayList<>();//排序法HashMap<String,List<String>> map new HashMap<>(); //遍历strfor(String str : strs){/…

    langchain从入门到精通(九)——ChatGPT/Playground手动模拟记忆功能

    1. 摘要缓冲混合记忆 摘要缓冲混合记忆中&#xff0c;所需的模块有&#xff1a; chat_message_history&#xff1a;存储历史消息列表。moving_summary_buffer&#xff1a;移除消息的汇总字符串。summary_llm&#xff1a;生成摘要的 LLM&#xff0c;接收 summary&#xff08;当…

    docker单点安装Hadoop

    1、Docker中拉取jdk8镜像 拉取镜像 docker pull openjdk:8-jdk 查看jdk docker run -it openjdk:8-jdk bash which java 2、安装ubuntu源 拉取镜像 docker pull ubuntu:22.04 保存 docker save -o ubuntu-22.04.tar.gz ubuntu:22.04 移动到自己想要的目录 mv /roo…

    uniapp项目之小兔鲜儿小程序商城(二) 首页的实现:自定义导航栏,轮拨图,前台分类,热门推荐,猜你喜欢,下拉刷新,骨架屏

    文章目录 零.首页最终效果一.自定义导航栏1.新建pages/index/components/CustomNavbar.vue首页子组件2.在首页pages/index/index.vue中引入3.隐藏默认导航栏修改标题颜色4.适配不同机型使用到了uniapp的一个api:获取屏幕边界到安全区域的距离在子组件中使用 二.轮拨图1.新建 sr…