结合 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 设置

创建项目

django-admin startproject blogbackend
cd blogbackend

创建应用

python manage.py startapp blog

定义模型

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

from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()

    def __str__(self):
        return self.title

数据库迁移

python manage.py makemigrations blog
python manage.py migrate

创建序列化器

安装 Django Rest Framework:

pip install djangorestframework

在 settings.py 添加 'rest_framework' 到 INSTALLED_APPS

创建 blog/serializers.py:

from rest_framework import serializers
from .models import Post

class PostSerializer(serializers.ModelSerializer):
    class Meta:
        model = Post
        fields = ("id", "title", "content")

创建视图

在 blog/views.py 中:

from django.shortcuts import render
from rest_framework import generics
from .models import Post
from .serializers import PostSerializer

class PostListCreate(generics.ListCreateAPIView):
    queryset = Post.objects.all()
    serializer_class = PostSerializer

设置URLs

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

from django.urls import path
from .views import PostListCreate

urlpatterns = [
    path('posts/', PostListCreate.as_view(), name='post-list-create'),
]

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

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/', include('blog.urls')),
]

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

第二部分:Vue.js 设置

创建 Vue.js 项目

vue create blogfrontend
cd blogfrontend

安装 Vue 资源库

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

npm install axios

设置 Vue.js 组件

编辑 src/App.vue:

<template>
  <div id="app">
    <h1>博客文章</h1>
    <PostList/>
  </div>
</template>

<script>
import PostList from './components/PostList.vue'

export default {
  name: 'App',
  components: {
    PostList
  }
}
</script>

创建 src/components/PostList.vue:

<template>
  <div>
    <div v-for="post in posts" :key="post.id">
      <h2>{{ post.title }}</h2>
      <p>{{ post.content }}</p>
    </div>
  </div>
</template>

<script>
import axios from 'axios'

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

运行 Vue.js 应用

启动 Vue.js 开发服务器:

npm run serve

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

总结

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/157497.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Jetson简介、编程开发与环境搭建

Jetson简介、编程开发与环境搭建 简介常用指令Jetpack环境搭建 简介 Jetson是由NVIDIA推出的一系列嵌入式系统&#xff0c;旨在用于机器学习和人工智能应用的开发。Jetson平台通常使用NVIDIA的GPU加速技术&#xff0c;以提供高性能的计算能力。NVIDIA推出了多个Jetson系列的产…

成集云 | 企业微信集成用友T+ | 解决方案

源系统成集云目标系统 方案介绍 用友T是一款由用友畅捷通推出的新型互联网企业管理系统&#xff0c;它主要满足成长型小微企业对其灵活业务流程的管控需求&#xff0c;并重点解决往来业务管理、订单跟踪、资金、库存等管理难题。 企业微信是一款通讯与办公工具&#xff0c;具…

NJU操作系统公开课笔记(1)

目录 一.计算机系统概述 二.计算机硬件系统 三.计算机软件系统 四.计算机操作技术的发展 五.计算机OS 1.资源管理的角度 2. 程序控制的角度 3.OS控制计算机的角度 4.人机交互的角度 5.程序接口的角度 6.系统结构的角度 单道批处理系统 多道批处理系统 分时系统 …

【Git学习二】时光回溯:git reset和git checkout命令详解

&#x1f601; 作者简介&#xff1a;一名大四的学生&#xff0c;致力学习前端开发技术 ⭐️个人主页&#xff1a;夜宵饽饽的主页 ❔ 系列专栏&#xff1a;JavaScript小贴士Git等软件工具技术的使用 &#x1f450;学习格言&#xff1a;成功不是终点&#xff0c;失败也并非末日&a…

链路追踪,助您洞悉数据联动分析的奥秘

前言 在当今复杂的分布式系统中&#xff0c;了解请求在不同服务之间的传递路径和性能情况对于系统的性能优化至关重要。链路追踪通过记录和分析请求在系统中的传递路径和性能数据&#xff0c;为实现数据联动分析提供了重要的支持。我们曾谈论观测云提供火焰图能够实现链路追踪…

开发知识点-前端-webpack

webpack技术笔记 一、 介绍二、 下载使用 一、 介绍 Webpack是一个现代 JavaScript 应用程序的静态模块打包器 打包&#xff1a;可以把js、css等资源按模块的方式进行处理然后再统一打包输出 静态&#xff1a;最终产出的静态资源都可以直接部署到静态资源服务器上进行使用 模…

mysql之rsync远程同步

&#xff08;一&#xff09;rsync 1、rsync&#xff1a;是一个开源的快速备份工具&#xff0c;可以在不同主机之间同步整个目录 2、在远程同步中&#xff0c;一个是源端&#xff0c;一个是发起端 &#xff08;1&#xff09;源端负责文件的原始位置&#xff0c;发起端和源端的…

最新随机小姐姐无水印开源版HTML源码

推荐一款高质量的HTML引流源码&#xff0c;适合浏览小姐姐短视频 这款源码具有出色的用户界面设计&#xff0c;给人视觉上的美感 视频播放流畅稳定&#xff0c;给用户带来良好的观影体验 小姐姐们的外貌也非常美丽吸引人 想要浏览精彩的小姐姐短视频&#xff0c;不妨试试这款…

Equifax案例分析与合规性场景实践

在当今数字化时代&#xff0c;数据安全已经成为各个组织和企业亟待解决的问题。尤其是在数据泄露事件不断增多的背景下&#xff0c;保护敏感数据免受非法访问和泄露变得尤为紧迫。为了应对这一挑战&#xff0c;许多组织和企业开始利用密钥管理服务(KMS)来加强其数据安全性&…

易点易动RFID管理系统:年终固定资产盘点的革命

随着现代企业规模的扩大和固定资产数量的增加&#xff0c;年终固定资产盘点成为了一项繁琐而耗时的任务。传统的手工盘点方法不仅效率低下&#xff0c;还容易出现错误和遗漏。为了解决这一难题&#xff0c;易点易动RFID管理系统应运而生。本文将重点介绍易点易动RFID管理系统在…

基于SSM的个人通讯录(有报告)。Javaee项目。

演示视频&#xff1a; 基于SSM的个人通讯录&#xff08;有报告&#xff09;。Javaee项目。 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 项目介绍&#xff1a; 采用M&#xff08;mod…

分享一个字体抽取软件

一、先下载软件。 地址 蓝奏云 密码 bjnr Fontmin-v0.2.0-win64 下载下来直接就是exe文件&#xff0c;直接双击安装即可。 二、打开默认如图显示 三、接下来把你的字体文件拖拽到里面 四、在把你用到这个字体的文字填入到框内 五、最后点击生成。 生成的字体文件只有2k了…

Eclipse切换中文环境

PACK包链接 地址&#xff0c;进入后可以看到不同版本的包。 要选择跟自己Eclipse版本一致的包&#xff0c;比如我的Eclipse启动界面如下&#xff0c;我就要找Helios的包&#xff08; Juno、Indigo、Helios、Kepler这些具体怎么划分的我也不清楚&#xff09;。 在线安装 打…

Oracle OCM考试(史上最详细的介绍,需要19c OCP的证书)

Oracle 19c OCM考试和之前版本的OCM考试差不多&#xff0c;对于考生来说最大的难点是题量大&#xff0c;每场3小时&#xff0c;一共4场&#xff0c;敲键盘敲得手抽筋。姚远老师&#xff08;v:dataace&#xff09;的很多Oracle OCP学员都对19c OCM考试很有兴趣&#xff0c;这里给…

电子眼与无人机在城市安防中的协同应用研究

随着城市化进程的快速推进&#xff0c;城市安全问题成为了人们关注的焦点。传统的安防手段已经无法满足现代城市复杂多变的安全需求。因此&#xff0c;结合电子眼与无人机技术&#xff0c;实现二者之间的协同应用&#xff0c;成为提升城市安防能力的重要途径。 一、电子眼与无人…

独立站和跨境电商平台的一个优缺点对比,哪个更适合你?

不管哪个行业都是一样的&#xff0c;有优点也有缺点&#xff0c;就像人们常说的人无完人一样。然后&#xff0c;我们来说说最近比较受关注的跨境电商独立站和跨境电商平台的一个优缺点对比吧&#xff01; 了解跨境电商独立站 建站&#xff0c;测试模板网站 跨境电商独立站 优点…

ChatGPT被曝测试新功能:学习所有历史聊天,还能重置记忆、“阅后即焚”

丰色 发自 凹非寺 量子位|公众号QbitAI ChatGPT可能要上新一项重大功能了。 那就是记住你之前的聊天内容并不断从中学习&#xff08;并非单纯保存历史记录&#xff09;&#xff0c;从而了解你的偏好和信息&#xff0c;用于在日后聊天派上用场。 比如你可以给它下达一句“始终…

相关系数和协方差的关系与区别

相关系数和协方差都是用来衡量两个变量之间关系的统计量&#xff0c;它们在描述变量之间的线性关系上提供了一些信息。下面是它们的关系与区别&#xff1a; 关系&#xff1a; 相关系数的计算涉及到协方差。相关系数等于协方差除以两个变量的标准差的乘积。具体而言&#xff0c…

利用邮件营销提升电商营业额的策略与方法

随着电子商务的迅速发展&#xff0c;各种推广和营销手段层出不穷&#xff0c;但在这个信息泛滥的时代&#xff0c;如何有效地吸引用户关注并提升电商的营业额成为了每一个电商人关注的焦点。而邮件营销正是一个被广泛应用且具有潜力的推广方式。通过合理规划和执行邮件营销策略…

高精度电压源是什么意思

高精度电压源是一种能够产生稳定、准确和可调节的电压输出的设备。在各种电子应用中&#xff0c;高精度电压源被广泛应用于模拟信号处理、测试和测量领域。本文将介绍高精度电压源的基本原理、特点和应用场景。 高精度电压源的基本原理是利用电平转换和放大电路&#xff0c;将输…