Fastapi前端搭建
1. 配置import { defineConfig } from vite import vue from vitejs/plugin-vue import { resolve } from path export default defineConfig({ plugins: [vue()], resolve: { alias: { : resolve(__dirname, src) } }, server: { proxy: { /api: { target: http://127.0.0.1:8000, changeOrigin: true, } } } })Vue 前端配置在/api路徑下配置代理將請(qǐng)求轉(zhuǎn)發(fā)到后端地址 http://127.0.0.1:8000/api/changeOrigin: true修改請(qǐng)求頭中的Origin為目標(biāo)地址避免后端因 Origin 校驗(yàn)拒絕請(qǐng)求。2. 接口格式// 加載圖書(shū)列表 1. 在掛載時(shí)加載 // const loadBook () { // axios.get(/api/book/?page${query.value.page}page_size${query.value.page_size}) // .then(res { // console.log(后端返回, res.data) // tableData.value res.data.data // totalNum.value res.data.count_total // }) // .catch(err console.error(err)) // }1. 方法一axios.get(調(diào)用路徑/?分頁(yè)參數(shù) 查詢條件).then請(qǐng)求成功后觸發(fā).then中的回調(diào)函數(shù)。.catch請(qǐng)求失敗后觸發(fā)。相當(dāng)于一個(gè) if-else 判斷如果成功執(zhí)行成功邏輯如果失敗則提示錯(cuò)誤。2. 方法二// 加載圖書(shū)列表 2. 在事件中加載 const loadBook () { axios.get(/api/book/, {params: query.value}) .then(res { console.log(res.data) tableData.value res.data.data totalNum.value res.data.count_total }) .catch(err console.error(err)) }在事件中加載時(shí)將參數(shù)放在請(qǐng)求體{params: query.value}中params中傳遞數(shù)據(jù)不在路由中傳遞。3. 添加、編輯接口!-- 新增、編輯共用彈窗 -- el-dialog v-modeldialogVisible title圖書(shū)表單 width520px el-form label-width90px el-form-item label書(shū)名 el-input v-modelform.name/el-input /el-form-item el-form-item label價(jià)格 el-input v-model.numberform.price/el-input /el-form-item el-form-item label庫(kù)存數(shù)量 el-input v-model.numberform.numbers/el-input /el-form-item !-- 分類下拉選擇 -- el-form-item label分類 el-select v-modelform.category_id placeholder請(qǐng)選擇分類 stylewidth: 100% el-option label文學(xué)小說(shuō) value1 / el-option label計(jì)算機(jī)編程 value2 / el-option label歷史人文 value3 / el-option label心理學(xué) value4 / el-option label美食菜譜 value5 / /el-select /el-form-item /el-form template #footer el-button clickdialogVisible false取消/el-button el-button typeprimary clicksubmitForm確定提交/el-button /template /el-dialog組件定義彈窗變量dialogVisible false默認(rèn)未打開(kāi)點(diǎn)擊后打開(kāi)并顯示數(shù)據(jù)綁定form中的空數(shù)據(jù)。如果輸入數(shù)據(jù)就將輸入的數(shù)據(jù)放到form中對(duì)應(yīng)的字段中。添加接口、編輯接口const submitForm () { if (operateMode.value add) { // 新增 axios.post(/api/book/, form.value) .then(() { ElMessage.success(新增成功) dialogVisible.value false loadBook() }) .catch(err { ElMessage.error(新增失敗) console.error(err) }) } else { // 編輯 axios.put(/api/book/${editBookId.value}, form.value) .then(() { ElMessage.success(修改成功) dialogVisible.value false loadBook() }) .catch(err { ElMessage.error(修改失敗) console.error(err) }) } }因?yàn)榫庉嫼吞砑庸δ茉谝黄鹦枰扰袛喈?dāng)前窗口是添加還是編輯然后調(diào)用對(duì)應(yīng)的接口。將請(qǐng)求體發(fā)送到后端form中是添加的數(shù)據(jù)傳到后端后添加到 MySQL 數(shù)據(jù)庫(kù)中。添加或編輯成功后將dialogVisible.value false關(guān)閉窗口。修改時(shí)只傳遞修改后的數(shù)據(jù)然后傳到后端接口進(jìn)行修改。

相關(guān)新聞

文字識(shí)別后排版混亂,掃描版PDF應(yīng)該怎么翻譯?

文字識(shí)別后排版混亂,掃描版PDF應(yīng)該怎么翻譯?

文字識(shí)別后排版混亂,掃描版PDF應(yīng)該怎么翻譯? 掃描版 PDF 的翻譯卡點(diǎn)不在"能不能識(shí)別文字",而在"識(shí)別完之后排版還能不能看"。不少 OCR 工具能把圖片里的文字轉(zhuǎn)成文本,但轉(zhuǎn)完之后段落順序錯(cuò)亂、雙欄被拆成單行…

2026/7/29 5:16:04 閱讀更多
從Cortex-M3內(nèi)核到STM32開(kāi)發(fā):嵌入式入門(mén)核心原理與實(shí)踐指南

從Cortex-M3內(nèi)核到STM32開(kāi)發(fā):嵌入式入門(mén)核心原理與實(shí)踐指南

1. 從零開(kāi)始:為什么是Cortex-M3與STM32?如果你正準(zhǔn)備踏入嵌入式開(kāi)發(fā)的大門(mén),或者剛從51單片機(jī)、Arduino這類相對(duì)簡(jiǎn)單的平臺(tái)升級(jí)過(guò)來(lái),那么“STM32”和“Cortex-M3”這兩個(gè)詞對(duì)你來(lái)說(shuō),可能既熟悉又陌生。熟悉是因?yàn)樗鼈儫o(wú)…

2026/7/29 5:16:04 閱讀更多
開(kāi)發(fā)者生產(chǎn)力:為什么開(kāi)發(fā)者和管理者理解不同?

開(kāi)發(fā)者生產(chǎn)力:為什么開(kāi)發(fā)者和管理者理解不同?

彌合工程師與管理者在開(kāi)發(fā)者生產(chǎn)力認(rèn)知上的差距。軟件工程管理者都希望開(kāi)發(fā)者盡可能高效地工作。但在現(xiàn)實(shí)中,我們也常常聽(tīng)到開(kāi)發(fā)者抱怨:許多原本為了提升開(kāi)發(fā)者生產(chǎn)力而引入的系統(tǒng)、工具和流程,實(shí)際效果卻適得其反,甚至讓他們更難…

2026/7/29 6:26:06 閱讀更多
基于SecGPT-14B與ATTCK框架的威脅情報(bào)TTPs自動(dòng)化映射實(shí)踐

基于SecGPT-14B與ATTCK框架的威脅情報(bào)TTPs自動(dòng)化映射實(shí)踐

1. 項(xiàng)目概述:當(dāng)大語(yǔ)言模型遇上威脅情報(bào)分析最近在做一個(gè)挺有意思的嘗試,把SecGPT-14B這個(gè)大模型,和我們?nèi)粘W鐾{分析時(shí)離不開(kāi)的ATT&CK框架給結(jié)合起來(lái)了。核心目標(biāo)很簡(jiǎn)單:讓機(jī)器能看懂那些零散、非結(jié)構(gòu)化的威脅報(bào)告&#xff…

2026/7/29 6:26:06 閱讀更多
使用Arduino作為ISP編程器為AVR芯片燒錄Bootloader的完整指南

使用Arduino作為ISP編程器為AVR芯片燒錄Bootloader的完整指南

1. 項(xiàng)目緣起:為什么需要自己動(dòng)手燒錄Bootloader?如果你玩Arduino有一段時(shí)間了,手頭攢了幾塊空白的ATmega328P或者ATmega2560芯片,或者從某寶上買(mǎi)了一些“裸片”,你可能會(huì)發(fā)現(xiàn)一個(gè)尷尬的問(wèn)題:這些芯片沒(méi)法直…

2026/7/29 6:26:06 閱讀更多
打破平臺(tái)壁壘:X2X遷移如何解決異構(gòu)環(huán)境下的數(shù)據(jù)流轉(zhuǎn)難題?

打破平臺(tái)壁壘:X2X遷移如何解決異構(gòu)環(huán)境下的數(shù)據(jù)流轉(zhuǎn)難題?

你知道全球共有多少數(shù)據(jù)嗎? 據(jù)IDC最新預(yù)測(cè),全球數(shù)據(jù)生成量將在五年內(nèi)實(shí)現(xiàn)規(guī)模翻倍。其中,中國(guó)市場(chǎng)2025年將產(chǎn)生51.78ZB數(shù)據(jù),到2029年增長(zhǎng)至136.12ZB,CAGR(復(fù)合年均增長(zhǎng)率)達(dá)到26.9%。 對(duì)于企業(yè)…

2026/7/29 6:26:06 閱讀更多
基于行空板與樸素貝葉斯的個(gè)人出行預(yù)測(cè)裝置實(shí)踐

基于行空板與樸素貝葉斯的個(gè)人出行預(yù)測(cè)裝置實(shí)踐

1. 項(xiàng)目緣起:當(dāng)一塊“行空板”遇見(jiàn)“貝葉斯”最近在折騰一個(gè)挺有意思的小項(xiàng)目,起因是身邊總有朋友抱怨,說(shuō)現(xiàn)在各種地圖App的出行方式推薦,有時(shí)候感覺(jué)“不太聰明”。比如,明明外面下著瓢潑大雨,它還在推薦你…

2026/7/29 6:16:06 閱讀更多
面試官大笑:“一個(gè)任務(wù)拆給 5 個(gè) Subagent 并行跑,不比 1 個(gè)快 5 倍?“我搖頭:“快不了,還可能更慢“

面試官大笑:“一個(gè)任務(wù)拆給 5 個(gè) Subagent 并行跑,不比 1 個(gè)快 5 倍?“我搖頭:“快不了,還可能更慢“

前兩個(gè)月,我在重構(gòu) AlgoMooc 網(wǎng)站過(guò)程中,發(fā)現(xiàn)一個(gè)問(wèn)題:在 Claude Code 里把一個(gè)任務(wù)拆給 5 個(gè) Subagent 并行跑,結(jié)果可能比 1 個(gè) agent 從頭干到尾還慢? 大多數(shù)人的第一反應(yīng)是反過(guò)來(lái)的:活是并行干的&#…

2026/7/29 0:15:24 閱讀更多
# 鴻蒙 HarmonyOS 應(yīng)用開(kāi)發(fā)實(shí)戰(zhàn)(第25期)|骰子(Dice Roller)— Unicode 符號(hào)與動(dòng)畫(huà)渲染精講

# 鴻蒙 HarmonyOS 應(yīng)用開(kāi)發(fā)實(shí)戰(zhàn)(第25期)|骰子(Dice Roller)— Unicode 符號(hào)與動(dòng)畫(huà)渲染精講

一、應(yīng)用概述 骰子(Dice Roller) 是一款經(jīng)典的休閑娛樂(lè)應(yīng)用,模擬了真實(shí)擲骰子的過(guò)程。應(yīng)用投擲兩個(gè)骰子(六面標(biāo)準(zhǔn)骰),使用 Unicode 骰面符號(hào)直觀展示每個(gè)骰子的點(diǎn)數(shù),并伴有快速滾動(dòng)的動(dòng)畫(huà)效果。…

2026/7/29 0:15:24 閱讀更多