安裝前端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
    英文地址,請注明出處:http://en.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…