Django 基础教程

Django 查询

Django 展示数据

Django Admin

Django 模板

Django 表单组件

Django 高级

Django FAQ

django vue前后端分离


Django REST framework + Vue.js

Django REST framework (DRF) 是一个功能强大的工具包,用于在 Django 应用中构建 API,而 Vue.js 则是一个流行的 JavaScript 框架,用于构建用户界面。这个组合允许您使用 Vue.js 创建前端,并通过 RESTful API 与后端 Django 应用进行通信。

以下是一个简单的 Django + Vue.js 应用示例:

后端(Django)设置

安装 Django 和 Django REST framework:

pip install django djangorestframework

创建 Django 项目和应用:

django-admin startproject myproject
cd myproject
django-admin startapp myapp

models.py 中定义一个 Django 模型:

# myapp/models.py
from django.db import models

class Item(models.Model):
    name = models.CharField(max_length=100)
    description = models.TextField()

    def __str__(self):
        return self.name

serializers.py 中创建一个序列化器,将模型转换为 JSON:

# myapp/serializers.py
from rest_framework import serializers
from .models import Item

class ItemSerializer(serializers.ModelSerializer):
    class Meta:
        model = Item
        fields = '__all__'

views.py 中创建一个视图集,用于处理 API 请求:

# myapp/views.py
from rest_framework import viewsets
from .models import Item
from .serializers import ItemSerializer

class ItemViewSet(viewsets.ModelViewSet):
    queryset = Item.objects.all()
    serializer_class = ItemSerializer

urls.py 中添加必要的 URL:

# myproject/urls.py
from django.urls import path, include
from rest_framework.routers import DefaultRouter
from myapp.views import ItemViewSet

router = DefaultRouter()
router.register(r'items', ItemViewSet)

urlpatterns = [
    path('api/', include(router.urls)),
]

前端(Vue.js)设置

安装 Vue CLI 并创建一个新的 Vue.js 项目:

npm install -g @vue/cli
vue create myfrontend
cd myfrontend

安装 Axios,用于向 Django API 发送 HTTP 请求:

npm install axios

创建一个组件来显示项目列表:

<!-- myfrontend/src/components/Items.vue -->
<template>
  <div>
    <h1>项目列表</h1>

*   {{ item.name }} - {{ item.description }}
  </div>
</template>

<script>
import axios from 'axios';

export default {
  data() {
    return {
      items: [],
    };
  },
  mounted() {
    axios.get('http://localhost:8000/api/items/')
      .then(response => {
        this.items = response.data;
      })
      .catch(error => {
        console.error(error);
      });
  },
};
</script>

将组件添加到主 Vue 实例中:

<!-- myfrontend/src/App.vue -->
<template>
  <div>
    <Items />
  </div>
</template>

<script>
import Items from './components/Items.vue';

export default {
  components: {
    Items,
  },
};
</script>

最后,启动 Django 服务器和 Vue.js 开发服务器:

# 在 Django 项目目录中
python manage.py runserver

# 在 Vue.js 项目目录中
npm run serve

通过这种设置,Django 后端将提供一个 RESTful API 来与数据交互,而 Vue.js 前端将使用 Axios 从 Django 后端获取并显示数据,从而实现前后端的清晰分离。

前后端分离是一种软件架构模式,其中前端和后端的开发是相互独立的,通过API进行通信。##使用Django+前端框架在这种方式下,可以将Dja ...
虽然Django本身不要求前后端分离,但是你可以通过前后端分离的方式来开发Django应用。前后端分离是一种架构模式,其中前端(通常是一个单 ...
交互方式:Django前后端交互Django是一个功能强大的Web框架,可以实现前后端之间的交互。##基于AJAX的交互AJAX(Async ...
在这个例子中,我将展示如何创建一个基本的Django-Vue管理界面,其中Django作为后端API,而Vue.###步骤1:Django后 ...
js是一个前端JavaScript框架,而Django是一个后端Pythonweb框架。js构建单页面应用(SPA),并将Django作为后 ...