前后端分离

技术栈:

前端:
  • Vue
  • Vue CLI

  • Element UI

  • Axios

后端:
  • Django
  • Django REST framework
  • Mysql

前端初始化项目:

  • 使用Vue CLI创建项目
    vue create student-management-front #创建项目
    cd student-management-front #进入项目目录
  • 安装Element UI和Axios
    vue add element
    npm install axios

  • 学生列表页面

    • src/views下创建StudentsList.vue文件。

    • 编写获取学生列表的Vue方法和Element UI表格展示数据。

  • <template>
      <div>
        <el-table :data="students">
          <el-table-column prop="id" label="ID"></el-table-column>
          <el-table-column prop="name" label="姓名"></el-table-column>
          <el-table-column prop="age" label="年龄"></el-table-column>
        </el-table>
      </div>
    </template>
    
    <script>
    import axios from 'axios';
    
    export default {
      data() {
        return {
          students: []
        };
      },
      async created() {
        try {
          const response = await axios.get('http://localhost:8000/api/students/');
          this.students = response.data;
        } catch (error) {
          console.error('Error fetching students:', error);
        }
      }
    };
    </script>

    后端:

  • 初始化项目
    • 创建虚拟环境并安装Django和Django REST Framework:

      pip install django djangorestframework mysqlclient
    • 创建一个新的Django项目和应用:

      # django-admin startproject student_management
      # cd student_management
      # python manage.py startapp students
  • 数据库配置
    • 修改student_management/settings.py中的数据库配置:
      DATABASES = {
          'default': {
              'ENGINE': 'django.db.backends.mysql',
              'NAME': 'your_db_name',
              'USER': 'your_db_user',
              'PASSWORD': 'your_db_password',
              'HOST': 'localhost',
              'PORT': '',
          }
      }

  • 模型和序列化器
    • students/models.py中定义学生模型:
      from django.db import models
      
      class Student(models.Model):
          name = models.CharField(max_length=100)
          age = models.IntegerField()
      
          def __str__(self):
              return self.name

    • students/serializers.py中定义序列化器:
      from rest_framework import serializers
      from .models import Student
      
      class StudentSerializer(serializers.ModelSerializer):
          class Meta:
              model = Student
              fields = ['id', 'name', 'age']

  • 视图和路由
    • students/views.py中定义视图:
      from rest_framework import viewsets
      from .models import Student
      from .serializers import StudentSerializer
      
      class StudentViewSet(viewsets.ModelViewSet):
          queryset = Student.objects.all()
          serializer_class = StudentSerializer

    • students/urls.py中定义路由,并在student_management/urls.py中包含它:
      from django.urls import path, include
      from rest_framework.routers import DefaultRouter
      from .views import StudentViewSet
      
      router = DefaultRouter()
      router.register('api/students', StudentViewSet, basename='student')
      
      urlpatterns = [
          path('', include(router.urls)),
      ]

  • 迁移和启动服务器
    python manage.py makemigrations students
    python manage.py migrate
    python manage.py runserver

  • 测试

确保前端Vue应用指向正确的后端API地址,然后分别启动前端和后端服务,你应该能够看到学生信息列表被成功展示。

  • 14
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值