• 结合 Django 和 Vue.js 打造现代 Web 应用



    概要

    在 Web 开发的世界里,Django 和 Vue.js 分别是后端和前端两个非常流行的框架。Django 以其强大的后端能力、快速开发以及安全性而著称,而 Vue.js 因其简洁、灵活和易于上手在前端开发领域广受欢迎。

    本篇文章将详细介绍如何将 Django 与 Vue.js 结合使用,打造一个现代化的 Web 应用。文章会通过一个简单的博客应用案例,展示 Django 如何作为 API 服务端,而 Vue.js 如何用作客户端界面。


    环境准备

    在我们开始之前,确保您已经安装了 Python、Django、Node.js 和 npm。接下来,我们将分两部分进行:首先设置 Django,然后配置 Vue.js。

    第一部分:Django 设置

    创建项目

    1. django-admin startproject blogbackend
    2. cd blogbackend

    创建应用

    python manage.py startapp blog
    

    定义模型

    在 blog/models.py 中,我们定义一个简单的 Post 模型

    1. from django.db import models
    2. class Post(models.Model):
    3.     title = models.CharField(max_length=100)
    4.     content = models.TextField()
    5.     def __str__(self):
    6.         return self.title

    数据库迁移

    1. python manage.py makemigrations blog
    2. python manage.py migrate

    创建序列化器

    安装 Django Rest Framework:

    pip install djangorestframework
    

    在 settings.py 添加 'rest_framework' 到 INSTALLED_APPS

    创建 blog/serializers.py:

    1. from rest_framework import serializers
    2. from .models import Post
    3. class PostSerializer(serializers.ModelSerializer):
    4.     class Meta:
    5.         model = Post
    6.         fields = ("id""title""content")

    创建视图

    在 blog/views.py 中:

    1. from django.shortcuts import render
    2. from rest_framework import generics
    3. from .models import Post
    4. from .serializers import PostSerializer
    5. class PostListCreate(generics.ListCreateAPIView):
    6.     queryset = Post.objects.all()
    7.     serializer_class = PostSerializer

    设置URLs

    添加 URL 规则到 blog/urls.py:

    1. from django.urls import path
    2. from .views import PostListCreate
    3. urlpatterns = [
    4.     path('posts/', PostListCreate.as_view(), name='post-list-create'),
    5. ]

    并在 blogbackend/urls.py 中包含 blog 应的 urls 模块:

    1. from django.contrib import admin
    2. from django.urls import path, include
    3. urlpatterns = [
    4.     path('admin/', admin.site.urls),
    5.     path('api/'include('blog.urls')),
    6. ]

    现在,我们的 API 已经建立完毕,可以使用 Django Admin 创建一些 Post 博客文章或者使用 API 测试。

    第二部分:Vue.js 设置

    创建 Vue.js 项目

    1. vue create blogfrontend
    2. cd blogfrontend

    安装 Vue 资源库

    为了与后端通信,我们将使用 axios 库。

    npm install axios
    

    设置 Vue.js 组件

    编辑 src/App.vue:

    1. <template>
    2. <div id="app">
    3. <h1>博客文章</h1>
    4. <PostList/>
    5. </div>
    6. </template>
    7. <script>
    8. import PostList from './components/PostList.vue'
    9. export default {
    10. name: 'App',
    11. components: {
    12. PostList
    13. }
    14. }
    15. </script>

    创建 src/components/PostList.vue:

    1. <template>
    2. <div>
    3. <div v-for="post in posts" :key="post.id">
    4. <h2>{{ post.title }}</h2>
    5. <p>{{ post.content }}</p>
    6. </div>
    7. </div>
    8. </template>
    9. <script>
    10. import axios from 'axios'
    11. export default {
    12. data() {
    13. return {
    14. posts: []
    15. }
    16. },
    17. mounted() {
    18. axios.get('http://localhost:8000/api/posts/')
    19. .then(response => {
    20. this.posts = response.data
    21. })
    22. .catch(error => {
    23. console.log(error)
    24. })
    25. }
    26. }
    27. </script>

    运行 Vue.js 应用

    启动 Vue.js 开发服务器:

    npm run serve
    

    您现在应该能够访问 http://localhost:8080/,看到从 Django API 加载的文章列表。

    总结

    通过本文,您已经学会了如何将 Django 设置为强大的后端 API,以及如何使用 Vue.js 创建动态前端。这种前后端分离的架构可以让您的项目更容易扩展、维护并且更好地管理不同的开发团队。

  • 相关阅读:
    windows创建服务:更新服务信息乱码问题(ChangeServiceConfig)
    设计模式案例
    深入聊聊Linux五种IO模型
    react antd -Form表单 (单个对象合并成整体对象) 合并对象
    振弦采集仪在隧道工程中的安全监测与控制研究
    墨西哥专线清关有什么要求?
    自动化选课(Python + selenium
    C语言知识之字符串
    模型推荐丨电子商务实战案例模型分享
    【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第46课-使用json文件
  • 原文地址:https://blog.csdn.net/Rocky006/article/details/134462887