풀스택 애플리케이션 구축: Vue3+Django4 실제 사례
소개:
모바일 인터넷의 발전과 함께 풀스택 개발이 점점 더 주목을 받고 있습니다. 풀스택 개발 엔지니어는 프론트엔드와 백엔드 개발을 독립적으로 완료하여 개발 효율성을 높일 수 있습니다. 이번 글에서는 최신 Vue3와 Django4를 활용하여 풀스택 애플리케이션을 구축하는 방법을 소개하고 실제 사례를 제시하겠습니다.
1. Vue3 프레임워크 소개
Vue3은 현재 가장 널리 사용되는 프런트엔드 프레임워크 중 하나입니다. 이는 코드를 더 읽기 쉽고 유지 관리하기 쉽게 만들기 위해 "결합된 API"라는 새로운 API 스타일을 채택합니다. Vue3에는 Teleport, Suspense, Fragment 등과 같은 몇 가지 새로운 기능도 도입되어 개발 경험이 더욱 풍부해졌습니다.
Vue3 애플리케이션을 작성하기 전에 먼저 Vue3 개발 환경을 설치하고 구성해야 합니다. npm 또는 Yarn을 사용하여 Vue3을 설치할 수 있습니다.
$ npm install -g @vue/cli
2. Django 프레임워크 소개
Django는 효율적이고 유연하며 안전한 Python 웹 개발 프레임워크입니다. 이는 웹 요청 처리, 데이터베이스 액세스, 양식 처리를 위한 완전한 프로세스 세트를 제공합니다. 등의 구성 요소입니다. Django를 사용하면 복잡한 웹 애플리케이션을 쉽게 구축할 수 있습니다.
최신 Django4를 사용하기 위해서는 먼저 Python과 Django를 설치해야 합니다. pip 명령을 사용하여 Django를 설치할 수 있습니다:
$ pip install Django
3. 풀 스택 애플리케이션 구축
이제 풀 스택 애플리케이션을 구축할 준비가 되었습니다. 간단한 작업 관리 애플리케이션을 구축하기 위해 Vue3를 프런트엔드 프레임워크로, Django를 백엔드 프레임워크로 사용하겠습니다.
$ django-admin startproject task_manager
이 명령은 현재 디렉터리에 task_manager라는 Django 프로젝트를 생성합니다.
$ cd task_manager $ python manage.py startapp tasks
이 명령은 Django 프로젝트에 task라는 애플리케이션을 생성합니다.
from django.db import models class Task(models.Model): title = models.CharField(max_length=100) description = models.TextField() created_at = models.DateTimeField(auto_now_add=True)
이렇게 하면 작업의 제목, 설명, 생성 시간이 포함된 Task라는 모델이 정의됩니다.
from rest_framework.decorators import api_view from rest_framework.response import Response from .models import Task from .serializers import TaskSerializer @api_view(['GET', 'POST']) def task_list(request): if request.method == 'GET': tasks = Task.objects.all() serializer = TaskSerializer(tasks, many=True) return Response(serializer.data) elif request.method == 'POST': serializer = TaskSerializer(data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data, status=201) return Response(serializer.errors, status=400)
이것은 GET 및 POST 요청을 처리하기 위한 task_list라는 보기 함수를 정의합니다. GET 요청은 모든 작업 목록을 반환하는 반면 POST 요청은 새 작업을 생성하는 데 사용됩니다.
from rest_framework import serializers from .models import Task class TaskSerializer(serializers.ModelSerializer): class Meta: model = Task fields = ['id', 'title', 'description', 'created_at']
이 작업은 작업 모델을 직렬화 및 역직렬화하기 위해 TaskSerializer라는 직렬 변환기를 정의합니다.
from django.urls import path from tasks.views import task_list urlpatterns = [ path('api/tasks/', task_list, name='task-list'), ]
그러면 task_list 보기 함수를 /api/tasks/ 경로에 매핑하는 task-list라는 URL 경로가 구성됩니다.
4. Vue3 애플리케이션 구축
백엔드 구축이 완료되었으므로 이제 Vue3를 사용하여 프런트엔드 페이지를 구축하겠습니다.
$ vue create task-manager
이 명령은 task-manager라는 Vue3 프로젝트를 생성합니다.
$ cd task-manager $ npm install axios
axios는 비동기 요청을 보내는 강력한 HTTP 클라이언트입니다. 우리는 Django 백엔드와 통신하기 위해 Axios를 사용할 것입니다.
<template> <div> <h1>Task List</h1> <ul> <li v-for="task in tasks" :key="task.id"> {{ task.title }} </li> </ul> </div> </template> <script> export default { data() { return { tasks: [] } }, mounted() { this.fetchTasks() }, methods: { async fetchTasks() { const response = await this.$http.get('/api/tasks/') this.tasks = response.data } } } </script>
이 작업 목록을 표시하기 위해 TaskList라는 Vue 구성 요소를 정의합니다.
그런 다음 CreateTask.vue라는 파일을 만들고 다음 코드를 추가합니다.
<template> <div> <h1>Create Task</h1> <input type="text" v-model="title" placeholder="Title"> <input type="text" v-model="description" placeholder="Description"> <button @click="createTask">Create</button> </div> </template> <script> export default { data() { return { title: '', description: '' } }, methods: { async createTask() { const data = { title: this.title, description: this.description } await this.$http.post('/api/tasks/', data) this.title = '' this.description = '' this.$emit('task-created') } } } </script>
이것은 새 작업을 생성하기 위한 CreateTask라는 Vue 구성 요소를 정의합니다.
<template> <div> <task-list @task-created="fetchTasks" /> <create-task @task-created="fetchTasks" /> </div> </template> <script> import TaskList from './components/TaskList.vue' import CreateTask from './components/CreateTask.vue' export default { components: { TaskList, CreateTask }, methods: { fetchTasks() { this.$refs.taskList.fetchTasks() } } } </script>
이렇게 하면 TaskList 및 CreateTask 구성 요소가 앱 페이지에 정상적으로 표시되고 작업이 생성될 때 fetchTasks 메서드가 트리거됩니다.
5. 애플리케이션 실행
이제 프런트엔드 및 백엔드 개발 작업이 완료되었으며 테스트용 애플리케이션을 실행할 수 있습니다.
$ cd task_manager $ python manage.py runserver
$ cd task-manager $ npm run serve
结束语:
通过本文的介绍,我们了解了如何使用Vue3和Django4构建全栈应用的基本步骤。通过实战案例,我们学习了如何在Vue3中发送请求,并在Django中处理请求数据。希望本文对您的全栈开发学习之路有所帮助。
위 내용은 풀스택 애플리케이션 구축: Vue3+Django4 실제 사례의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!