首页 > 其他分享 >Django项目与Vue的集成

Django项目与Vue的集成

时间:2024-08-12 14:49:46浏览次数:8  
标签:集成 Vue dist 项目 py django Django

Django项目与Vue的集成

在现代Web开发领域,前后端分离已成为一种主流趋势。Django,作为一个强大的Python Web框架,以其丰富的功能和高度的可扩展性而受到开发者的青睐。而Vue.js,作为一个轻量级的渐进式JavaScript框架,以其简洁的API和灵活的组件系统成为前端开发的热门选择。将Django与Vue集成,可以充分利用两者的优势,构建出既高效又用户体验良好的现代Web应用。

一、为什么选择Django与Vue集成

  1. 前后端分离的优势
    • 独立开发:前端和后端可以独立进行开发,互不干扰,提高了开发效率。
    • 清晰的责任划分:前端负责页面渲染和用户交互,后端负责数据处理和业务逻辑,职责清晰。
    • 易于维护:由于前后端分离,当需要更新或修改功能时,可以只关注相关部分,降低了维护成本。
  2. Django与Vue的互补性
    • Django提供了强大的后端支持,如ORM、模板引擎、用户认证等。
    • Vue则以其简洁的语法和灵活的组件系统,为前端提供了丰富的表现力和交互性。

二、集成步骤

1. 创建Django项目

首先,使用Django的命令行工具创建一个新的Django项目。这包括设置数据库、用户认证等基础配置。

django-admin startproject myproject
cd myproject
python manage.py startapp myapp

2. 创建Vue项目

使用Vue CLI或任何其他工具创建一个Vue项目,并开发前端页面和组件。

vue create myvueapp
cd myvueapp
npm run serve  # 开发模式运行Vue应用

3. 构建Vue项目

当Vue前端开发完成后,使用构建命令将Vue项目打包成静态资源。

npm run build

image

这将在Vue项目的dist目录下生成构建后的静态资源。

image

4. 集成Vue静态资源到Django

将Vue项目的dist目录中的内容复制到Django项目的某个静态文件目录下,例如myproject/static

修改Django的settings.py文件,确保静态文件目录被正确设置,并且Django在运行时能够访问到这些文件。

# settings.py

import os


TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'dist')],  # 此处修改
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

# 此处新增
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'dist/assets'),
]

# 此处修改,静态资源地址
STATIC_URL = 'assets/'

image

5. 配置Django的URL路由

在Django的urls.py文件中,添加一个指向Vue首页的路由。这通常是一个TemplateView,它直接渲染Vue项目构建后的index.html文件。

# urls.py

from django.urls import path, re_path
from django.views.generic.base import TemplateView


urlpatterns = [
    # 其他路由
    re_path(r'.*', TemplateView.as_view(template_name='index.html'))  # 前端路由, 需要放在最后一行, 目的是404时显示Vue的自定义模板
]

注意:这里的index.html是Vue项目构建后生成的HTML文件,它通常位于dist目录下,但在Django中,你需要将其移动到Django的模板目录或作为静态文件来引用(步骤4已经设置)。

6. 运行Django服务器

使用Django的命令行工具启动开发服务器,并访问设定的根URL,你应该能看到Vue前端页面被成功渲染。

python manage.py runserver

7. 访问页面
访问默认端口:http://localhost:8000
image

标签:集成,Vue,dist,项目,py,django,Django
From: https://www.cnblogs.com/test-gang/p/18354874

相关文章

  • 基于SpringBoot+MySQL+SSM+Vue.js的物业管理系统(附论文)
    获取见最下方名片信息获取见最下方名片信息获取见最下方名片信息演示视频基于SpringBoot+MySQL+SSM+Vue.js的物业管理系统(附论文)技术描述开发工具:Idea/Eclipse数据库:MySQLJar包仓库:Maven前端框架:Vue/ElementUI后端框架:Spring+SpringMVC+Mybatis+Sprin......
  • 基于SpringBoot+MySQL+SSM+Vue.js的大学生兼职系统(附论文)
    获取见最下方名片信息获取见最下方名片信息获取见最下方名片信息演示视频基于SpringBoot+MySQL+SSM+Vue.js的大学生兼职系统(附论文)技术描述开发工具:Idea/Eclipse数据库:MySQLJar包仓库:Maven前端框架:Vue/ElementUI后端框架:Spring+SpringMVC+Mybatis+Spr......
  • 基于SpringBoot+MySQL+SSM+Vue.js的线上教育培训办公系统(附论文)
    获取见最下方名片信息获取见最下方名片信息获取见最下方名片信息演示视频基于SpringBoot+MySQL+SSM+Vue.js的线上教育培训办公系统(附论文)技术描述开发工具:Idea/Eclipse数据库:MySQLJar包仓库:Maven前端框架:Vue/ElementUI后端框架:Spring+SpringMVC+Mybat......
  • PHP身份证三要素核验接口集成-身份证三要素查询真伪-身份证三要素实名认证
    身份证三要素实名认证接口简介:身份证三要素实名认证是核验身份证号、姓名、证件头像是否一致,以此来验证身份证的真伪,现已被广泛应用于电商、银行、保险等各种需要对身份真伪进行核查的场景。身份证三要素实名认证接口核验返回参数说明如下:序号 名称 类型 说明1 user_check_res......
  • 翔云PHP身份证识别接口集成示例-护照识别-港澳台通行证识别
    证件识别接口简介:证件识别接口一般是指针对各类证件进行识别,其中包含但不限于身份证识别、护照识别、港澳台通行证识别、户口页识别、驾驶证识别、行驶证识别、台湾健保卡等,其​多应用于需要进行实名认证与证件信息登记的场景。证件身份证识别接口返回结果示例如下:证件识别接......
  • Vue + ElementUI表格内实现图片点击放大效果的两种方式
    方式一:使用el-popover弹出框trigger属性用于设置何时触发Popover(弹出框)属性值有:hover、click、focus和manualstyle="cursor:pointer":当鼠标放上去时让img标签出现小手状态<el-table-columnlabel="物品图片"header-align="center"align="center"><templates......
  • 基于flask+vue框架的基于Web民宿管理系统的设计与实现[开题+论文+程序]-计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着旅游业的蓬勃发展,民宿作为一种新兴的住宿方式,凭借其独特的文化体验、个性化的服务以及灵活的价格策略,逐渐受到广大旅行者的青睐。然而......
  • 基于flask+vue框架的的奶茶店预约订单系统[开题+论文+程序]-计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着消费观念的升级和生活节奏的加快,奶茶店作为休闲饮品的主要提供者,其市场需求日益增长。然而,在高峰时段,顾客往往需要排队等候,这不仅影响......
  • Vue.js 项目中集成高德地图 API
    要在Vue.js项目中集成高德地图API,你可以按照以下步骤操作:###第一步:引入高德地图API首先,你需要在你的Vue项目中引入高德地图的JSAPI。可以通过在HTML文件中直接引入CDN链接或者使用npm安装的方式。####通过CDN引入:在`public/index.html`文件中的`<head......
  • Vue 3 Composition API:构建可复用逻辑的艺术
    Vue3引入了CompositionAPI,这是一种新的组件选项,允许开发者更灵活地组织组件逻辑。使用CompositionAPI,我们可以将组件逻辑分解为可复用的函数,从而提高代码的模块化和可维护性。本文将详细介绍如何使用Vue3的CompositionAPI创建可复用的逻辑。一、CompositionAP......