Vue 3前端与Python(Django)后端接口简单示例
项目
后端(Django)
- 创建Django项目和应用:
- 确保你已经安装了Django。如果没有安装,可以使用以下命令安装:
- 创建一个新的Django项目:
- 进入项目目录并创建一个新的应用程序:
- 配置项目:
- 在
myproject/settings.py
文件中,将myapp
添加到INSTALLED_APPS
列表中,并配置允许跨域访问(因为Vue和Django可能运行在不同端口)。安装corsheaders
库: - 在
INSTALLED_APPS
中添加corsheaders
: - 在
MIDDLEWARE
中添加corsheaders
中间件: - 配置允许所有来源访问(在生产环境中请替换为实际的前端域名):
- 编写视图和API:
- 在
myapp/views.py
中编写一个简单的视图函数: - 在
myapp/urls.py
中配置URL: - 在
myproject/urls.py
中包含myapp
的URL配置: - 运行后端:
python manage.py runserver
pip install django
django-admin startproject myproject
cd myproject
python manage.py startapp myapp
pip install django-cors-headers
INSTALLED_APPS = [
...
'corsheaders',
'myapp',
]
MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
...
]
CORS_ALLOW_ALL_ORIGINS = True
from django.http import JsonResponse
def get_data(request):
data = {'message': '这是来自Django后端的数据'}
return JsonResponse(data)
from django.urls import path
from. import views
urlpatterns = [
path('api/data/', views.get_data, name='get_data'),
]
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('myapp.urls')),
]
前端(Vue 3)
- 创建Vue 3项目:
- 确保你已经安装了
vue@latest
。如果没有安装,可以使用以下命令安装: - 选择默认配置或根据提示进行自定义配置。
- 编写Vue组件:
- 在
src/views/Home.vue
中修改代码以调用后端API: - 运行前端:
- 在项目目录中运行以下命令启动Vue开发服务器:
npm create vue@latest
<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>
npm run dev
现在,Vue 3前端应用可以成功调用Django后端提供的API,并展示返回的数据。请确保后端和前端服务器都在运行,并且根据实际情况调整API的URL。
作者:闲人陈二狗