Vue3前端與Python(Django)后端接口簡(jiǎn)單代碼示例
后端(Django)
- 創(chuàng)建Django項(xiàng)目和應(yīng)用:
- 確保你已經(jīng)安裝了Django。如果沒(méi)有安裝,可以使用以下命令安裝:
pip install django
- 創(chuàng)建一個(gè)新的Django項(xiàng)目:
django-admin startproject myproject
- 進(jìn)入項(xiàng)目目錄并創(chuàng)建一個(gè)新的應(yīng)用程序:
cd myproject python manage.py startapp myapp
- 配置項(xiàng)目:
- 在
myproject/settings.py
文件中,將myapp
添加到INSTALLED_APPS
列表中,并配置允許跨域訪問(wèn)(因?yàn)閂ue和Django可能運(yùn)行在不同端口)。安裝corsheaders
庫(kù):
pip install django-cors-headers
- 在
INSTALLED_APPS
中添加corsheaders
:
INSTALLED_APPS = [ ... 'corsheaders', 'myapp', ]
- 在
MIDDLEWARE
中添加corsheaders
中間件:
MIDDLEWARE = [ 'corsheaders.middleware.CorsMiddleware', 'django.middleware.common.CommonMiddleware', ... ]
- 配置允許所有來(lái)源訪問(wèn)(在生產(chǎn)環(huán)境中請(qǐng)?zhí)鎿Q為實(shí)際的前端域名):
CORS_ALLOW_ALL_ORIGINS = True
- 在
- 編寫視圖和API:
- 在
myapp/views.py
中編寫一個(gè)簡(jiǎn)單的視圖函數(shù):
from django.http import JsonResponse def get_data(request): data = {'message': '這是來(lái)自Django后端的數(shù)據(jù)'} return JsonResponse(data)
- 在
myapp/urls.py
中配置URL:
from django.urls import path from. import views urlpatterns = [ path('api/data/', views.get_data, name='get_data'), ]
- 在
myproject/urls.py
中包含myapp
的URL配置:
from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('', include('myapp.urls')), ]
- 在
- 運(yùn)行后端:
python manage.py runserver
前端(Vue 3)
- 創(chuàng)建Vue 3項(xiàng)目:
- 確保你已經(jīng)安裝了
vue@latest
。如果沒(méi)有安裝,可以使用以下命令安裝:
npm create vue@latest
- 選擇默認(rèn)配置或根據(jù)提示進(jìn)行自定義配置。
- 確保你已經(jīng)安裝了
- 編寫Vue組件:
- 在
src/views/Home.vue
中修改代碼以調(diào)用后端API:
<template> <div> <h1>Vue 3與Django集成示例</h1> <p>{{ responseData.message }}</p> </div> </template> <script setup> import { ref } from 'vue'; import axios from 'axios'; const responseData = ref({}); const fetchData = async () => { try { const response = await axios.get('http://127.0.0.1:8000/api/data/'); responseData.value = response.data; } catch (error) { console.error('Error fetching data:', error); } }; fetchData(); </script> <style scoped> /* 樣式 */ </style>
- 在
- 運(yùn)行前端:
- 在項(xiàng)目目錄中運(yùn)行以下命令啟動(dòng)Vue開(kāi)發(fā)服務(wù)器:
npm run dev
現(xiàn)在,Vue 3前端應(yīng)用可以成功調(diào)用Django后端提供的API,并展示返回的數(shù)據(jù)。請(qǐng)確保后端和前端服務(wù)器都在運(yùn)行,并且根據(jù)實(shí)際情況調(diào)整API的URL。
總結(jié)
到此這篇關(guān)于Vue3前端與Python(Django)后端接口的文章就介紹到這了,更多相關(guān)Vue3前端與Django后端接口內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue動(dòng)態(tài)路由:路由參數(shù)改變,視圖不更新問(wèn)題的解決
今天小編就為大家分享一篇vue動(dòng)態(tài)路由:路由參數(shù)改變,視圖不更新問(wèn)題的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11Vue優(yōu)化:常見(jiàn)會(huì)導(dǎo)致內(nèi)存泄漏問(wèn)題及優(yōu)化詳解
這篇文章主要介紹了Vue優(yōu)化:常見(jiàn)會(huì)導(dǎo)致內(nèi)存泄漏問(wèn)題及優(yōu)化詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-08-08Vue3+Element-plus項(xiàng)目自動(dòng)導(dǎo)入報(bào)錯(cuò)的解決方案
vue3出來(lái)一段時(shí)間了,element也更新了版本去兼容vue3,下面這篇文章主要給大家介紹了關(guān)于Vue3+Element-plus項(xiàng)目自動(dòng)導(dǎo)入報(bào)錯(cuò)的解決方案,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07vue使用openlayers實(shí)現(xiàn)移動(dòng)點(diǎn)動(dòng)畫
這篇文章主要為大家詳細(xì)介紹了vue使用openlayers實(shí)現(xiàn)移動(dòng)點(diǎn)動(dòng)畫,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-09-09Vue項(xiàng)目中使用fontawesome圖標(biāo)庫(kù)的方法
fontawesome的圖標(biāo)有免費(fèi)版和專業(yè)版,本文主要使用free版本,一般free版本的圖標(biāo)夠用,free圖標(biāo)又劃分為三個(gè)圖標(biāo)庫(kù),主要有實(shí)心圖標(biāo)solid、常規(guī)圖標(biāo)regular及品牌圖標(biāo)brand,根據(jù)需求去下載對(duì)應(yīng)的圖標(biāo)庫(kù),無(wú)須全部下載,對(duì)vue?fontawesome圖標(biāo)庫(kù)相關(guān)知識(shí)感興趣的朋友一起看看吧2023-12-12最后說(shuō)說(shuō)Vue2 SSR 的 Cookies 問(wèn)題
這篇文章主要介紹了最后說(shuō)說(shuō)Vue2 SSR 的 Cookies 問(wèn)題,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-05-05詳解vuejs中執(zhí)行npm run dev出現(xiàn)頁(yè)面cannot GET/問(wèn)題
這篇文章主要介紹了詳解vuejs中執(zhí)行npm run dev出現(xiàn)頁(yè)面cannot GET/問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04