Vue.js与Flask/Django后端配合详细讲解

在这里插## 标题入图片描述

> 						大家好,我是程序员小羊!

✨博客主页: https://blog.csdn.net/m0_63815035?type=blog

💗《博客内容》:.NET、Java.测试开发、Python、Android、Go、Node、Android前端小程序等相关领域知识
📢博客专栏: https://blog.csdn.net/m0_63815035/category_11954877.html
📢欢迎点赞 👍 收藏 ⭐留言 📝
📢本文为学习笔记资料,如有侵权,请联系我删除,疏漏之处还请指正🙉
📢大厦之成,非一木之材也;大海之阔,非一流之归也✨

在这里插入图片描述

前言

Vue.js 与 Flask 或 Django 的结合可以形成一个强大的前后端分离架构,适合构建现代 web 应用。以下是详细讲解如何将 Vue.js 与 Flask/Django 后端配合使用。

1. 基础架构

  • Vue.js: 负责前端,构建用户界面。
  • Flask/Django: 负责后端,处理数据存取和业务逻辑。

2. 项目结构

/my_project/frontend    # Vue.js 项目/backend     # Flask 或 Django 项目

3. 设置 Vue.js

  1. 安装 Vue CLI:

    npm install -g @vue/cli
    
  2. 创建 Vue 项目:

    vue create frontend
    
  3. 开发组件:
    frontend/src/components 下创建 Vue 组件,使用 axios 进行 API 调用。

4. 设置 Flask

  1. 创建 Flask 项目:

    mkdir backend
    cd backend
    python -m venv venv
    source venv/bin/activate  # Linux/Mac
    venv\Scripts\activate     # Windows
    pip install Flask
    
  2. 创建 Flask 应用:
    backend 目录下创建 app.py:

    from flask import Flask, jsonify, requestapp = Flask(__name__)@app.route('/api/data', methods=['GET'])
    def get_data():return jsonify({'message': 'Hello from Flask!'})if __name__ == '__main__':app.run(debug=True)
    
  3. CORS 设置:
    为了允许 Vue.js 与 Flask 通信,需要安装 flask-cors:

    pip install flask-cors
    

    app.py 中添加:

    from flask_cors import CORS
    CORS(app)
    

5. 设置 Django

  1. 创建 Django 项目:

    mkdir backend
    cd backend
    python -m venv venv
    source venv/bin/activate
    pip install django djangorestframework
    django-admin startproject myproject .
    
  2. 创建 API 应用:

    python manage.py startapp api
    
  3. 设置 Django REST Framework:
    settings.py 中添加:

    INSTALLED_APPS = [...'rest_framework','api',
    ]
    
  4. 创建视图:
    api/views.py 中:

    from rest_framework.views import APIView
    from rest_framework.response import Responseclass DataView(APIView):def get(self, request):return Response({'message': 'Hello from Django!'})
    
  5. 设置路由:
    api/urls.py 中:

    from django.urls import path
    from .views import DataViewurlpatterns = [path('data/', DataView.as_view()),
    ]
    

    myproject/urls.py 中包含 api.urls:

    from django.contrib import admin
    from django.urls import path, includeurlpatterns = [path('admin/', admin.site.urls),path('api/', include('api.urls')),
    ]
    
  6. CORS 设置:
    安装 django-cors-headers:

    pip install django-cors-headers
    

    settings.py 中添加:

    INSTALLED_APPS = [...'corsheaders',
    ]MIDDLEWARE = [...'corsheaders.middleware.CorsMiddleware',
    ]CORS_ALLOW_ALL_ORIGINS = True  # 或者设置具体的白名单
    

6. 连接前后端

  1. 在 Vue.js 中使用 Axios:
    安装 axios:

    npm install axios
    

    在 Vue 组件中调用 API:

    <template><div>{{ message }}</div>
    </template><script>
    import axios from 'axios';export default {data() {return {message: ''};},mounted() {axios.get('http://localhost:5000/api/data') // Flask.then(response => {this.message = response.data.message;});}
    };
    </script>
    

    对于 Django,URL 更改为 http://localhost:8000/api/data/

  2. 启动开发服务器:

    • Flask:

      python app.py
      
    • Django:

      python manage.py runserver
      
    • Vue:

      cd frontend
      npm run serve
      

7. 生产环境配置

  1. 构建 Vue 应用:

    npm run build
    
  2. 部署 Flask/Django 应用:
    配置 Nginx 或 Apache 作为反向代理,确保它能服务于构建后的 Vue 应用。

  3. 静态文件处理:

    • 对于 Flask,可以将构建后的 Vue 文件放在 Flask 的 static 目录。
    • 对于 Django,确保在 settings.py 中配置 STATICFILES_DIRS

8. 总结

  • 前后端分离使得开发和维护变得更高效。
  • Vue.js 负责用户界面,Flask/Django 处理后端逻辑和数据交互。
  • API 接口的设计和实现是关键,确保正确处理 CORS 和路由。
  • 部署时,选择合适的服务器和代理配置,以确保性能和安全性。

这样就形成了一个完整的前后端分离应用,能够快速开发和扩展。

今天这篇文章就到这里了,大厦之成,非一木之材也;大海之阔,非一流之归也。感谢大家观看本文

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

JZ2440下载后设置NAND启动文件系统

&#xff08;一&#xff09;下载 &#xff08;二&#xff09;设置根文件系统NAND FLASH启动 set bootargs noinitrd root/dev/mtdblock3 init/linuxrc consolettySAC0

xuri/excelize简单使用

main.go文件&#xff1a; package mainimport ("fmt""github.com/xuri/excelize/v2" )func main() {read() // 读excel文件//write() // 写excel文件//readAndWrite() // 读写excel文件 }func read() {f, err : excelize.OpenFile("read.xls…

YoloV8改进策略:BackBone改进|Next-ViT主干赋能下的革命性改进

摘要 Next-ViT(下一代视觉Transformer)是专为解决传统ViT模型在工业部署中遇到的推理速度慢、计算复杂度高等问题而设计的。它巧妙地结合了高效的Next Convolution Block(NCB)和Next Transformer Block(NTB),通过创新的混合策略(NHS)堆叠这些模块,从而在各种视觉任务…

倍增练习(1)

A - ST 表 && RMQ 问题 题目思路:st表的板子题用于静态区间求最值,通过倍增的思想,先通过预处理将各个区间的最大值通过转移式求出f[i][j] max(f[i][j - 1], f[i (1 << (j - 1))][j - 1]);然后再进行重叠查询查询,k log2(r - l 1);,max(f[l][k], f[r - (1 &l…

安装idea完整教程

安装idea完整教程 下载链接 https://www.jetbrains.com.cn/idea/download/?sectionwindows 安装 安装完成&#xff01; 激活 从网上查找激活码&#xff0c;然后进行激活 我是用的网上找的&#xff0c;大家可以试试&#xff1a;https://www.cnblogs.com/unclecode1024/p/…

OpenCV运动分析和目标跟踪(3)计算图像序列的加权平均值函数accumulateWeighted()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 更新一个运行平均值。 该函数计算输入图像 src 和累积器 dst 的加权和&#xff0c;使得 dst 成为帧序列的运行平均值&#xff1a; dst ( x , y…

FPGA第 11 篇,Verilog 系统函数( Verilog 中的系统函数)

前言 Verilog 作为一种强大的硬件描述语言&#xff0c;不仅提供了用于设计和仿真数字电路的基础语法&#xff0c;还包含了丰富的系统函数&#xff0c;帮助我们高效地完成复杂的硬件操作。系统函数是 Verilog 语言中预定义的特殊函数&#xff0c;通常以 $ 开头&#xff0c;它们…

【Linux】环境部署kafka集群

目录 一、kafka简介 1. 主要特点 2.组件介绍 3.消息中间件的对比 二、环境准备 1.Java环境 2.Zookeeper环境 3.硬件环境集群 三、Zookeeper的集群部署 1.下载zookeeper 2.部署zookeeper集群 &#xff08;1&#xff09;node1节点服务器 &#xff08;2&#xff09;no…

助力电商升级,智象未来(HiDream.ai)开启未来商业新篇章

近日&#xff0c;智象未来&#xff08;HiDream.ai&#xff09;凭借其创新性的“秩象™大模型”&#xff0c;在业界掀起了一场跨行业的创意革命&#xff0c;对视觉设计、运营商服务、品牌营销以及文旅传媒等领域的创新发展产生了深远影响。致力于全球领先的多模态生成式人工智能…

springCloud(一)注册中心

1.Eureka 要是user-service服务有多个&#xff0c;order-service该怎么调用&#xff1f; 这就需要用到 注册中心 了 。 1.1 搭建Eureka服务 1. pom引入依赖 <dependencies><!--eureka服务端--><dependency><groupId>org.springframework.cloud</gr…

VulnHub-Bilu_b0x靶机笔记

Bilu_b0x 靶机 概述 Vulnhub 的一个靶机&#xff0c;包含了 sql 注入&#xff0c;文件包含&#xff0c;代码审计&#xff0c;内核提权。整体也是比较简单的内容&#xff0c;和大家一起学习 Billu_b0x.zip 靶机地址&#xff1a; https://pan.baidu.com/s/1VWazR7tpm2xJZIGUS…

操作系统之磁盘

目录 一. 磁盘的结构二. 磁盘调度算法&#xff08;重点&#xff09;三. 减少磁盘延迟时间的方法四. 磁盘的管理五. 固态硬盘&#xff08;SSD&#xff09; \quad 一. 磁盘的结构 \quad 最内侧磁道上的扇区面积最小&#xff0c;因此数据密度最大 \quad 二. 磁盘调度算法&…

论文阅读与分析:Few-Shot Graph Learning for Molecular Property Prediction

论文阅读与分析&#xff1a;Few-Shot Graph Learning for Molecular Property Prediction 论文地址和代码地址1 摘要2 主要贡献3 基础知识Meta Learning1 介绍2 学习算法Step 1: What is learnable in a learning algorithm?Step 2&#xff1a;Define loss function for learn…

论文阅读-《Attention is All You Need》

注意力就是一切 【要点】&#xff1a;论文提出了一种全新的网络架构——Transformer&#xff0c;完全基于注意力机制&#xff0c;无需使用循环和卷积&#xff0c;实现了在机器翻译任务上的性能提升和训练效率的显著提高。 【方法】&#xff1a;通过构建一个仅使用注意力机制的…

内存管理(C++版)

C/C内存分布 程序经过编译生成可执行的二进制程序&#xff0c;我们可以把虚拟进程地址分为以下四个空间&#xff1a;栈&#xff0c;堆&#xff0c;常量区&#xff0c;静态区。这四个区里面存贮的也是不一样的内容。 各个区域所存储内容的说明 栈/堆栈&#xff1a;用于建立函…

项目实现:云备份服务端①(文件操作、Json等工具类实现)

云备份 前言文件操作实用工具类设计文件属性的获取文件的读写操作文件压缩与解压缩的实现文件目录操作 Json 实用工具类设计编译优化 前言 如果有老铁不知道当前项目实现的功能是什么的话&#xff0c;可以先移步这篇文章内容&#xff1a; 云备份项目的介绍 其中介绍了云备份项…

代码管理-使用TortoiseGit同步项目到Github/Gitee

1 什么是TortoiseGit TortoiseGit下载地址 TortoiseGit是Git的Windows桌面可视化工具&#xff0c;通过软件的操作来实现Git命令的效果&#xff0c;使所有的操作都能用图形化实现。TortoiseGit安装很简单&#xff0c;这里不对安装流程进行讲解。下载之后即可按照普通软件的方式…

[vue2+axios]下载文件+文件下载为乱码

export function downloadKnowledage(parameter) {return axios({url: /knowledage/download,method: GET,params: parameter,responseType: blob}) }添加 responseType: blob’解决以下乱码现象 使用触发a标签下载文件 downloadKnowledage(data).then((res) > {let link …

Linux配置静态IP详细步骤及联网问题,以及更改主机名问题

一&#xff0c;Linux配置静态IP详细步骤及联网问题 我的Linux操作系统版本是是CentOS7/CentOS8 1.网络适配器&#xff1a;NAT模式点击设置-网络适配器-网络连接 &#xff08;选择NAT模式&#xff09;-点击确定 2.查看网关相关配置点击 编辑-虚拟网络编辑器-选择VMnet8-点击更…

JZ2440开发板——S3C2440的存储控制器

以下内容源于韦东山课程的学习与整理&#xff0c;如有侵权请告知删除。 课程中说的“内存控制器”&#xff0c;准确来说是“存储控制器”&#xff0c;其配套书籍写的也是“存储控制器”。 另外“Nor Flash控制器”&#xff0c;说的也是“存储控制器”&#xff0c;或者“存储控…