Django项目与Vue的集成
Django项目与Vue的集成
在现代Web开发领域,前后端分离已成为一种主流趋势。Django,作为一个强大的Python Web框架,以其丰富的功能和高度的可扩展性而受到开发者的青睐。而Vue.js,作为一个轻量级的渐进式JavaScript框架,以其简洁的API和灵活的组件系统成为前端开发的热门选择。将Django与Vue集成,可以充分利用两者的优势,构建出既高效又用户体验良好的现代Web应用。
一、为什么选择Django与Vue集成
- 前后端分离的优势:
- 独立开发:前端和后端可以独立进行开发,互不干扰,提高了开发效率。
- 清晰的责任划分:前端负责页面渲染和用户交互,后端负责数据处理和业务逻辑,职责清晰。
- 易于维护:由于前后端分离,当需要更新或修改功能时,可以只关注相关部分,降低了维护成本。
- 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

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

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/'

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

Django项目与Vue的集成的更多相关文章
- django项目、vue项目部署云服务器
目录 上线架构图 服务器购买与远程连接 安装git 安装mysql 安装redis(源码安装) 安装python3.8(源码安装) 安装uwsgi 安装虚拟环境 安装nginx(源码安装) vue项目 ...
- 项目部署Vue+Django(luffy)
部署路飞学城 部署整体框架图: 1 熟悉linux操作 2 上传路飞学城项目到linux服务器 xftp上传到服务器 lrzsz工具 3 完成python3解释器的安装 在linux命令行模式下, 输 ...
- 直接运行vue+django项目
直接运行vue+django项目 下载前后端代码 wget https://files.cnblogs.com/files/pyyu/luffy_boy.zip wget https://files. ...
- 在django中部署vue项目,不单独抽离dist文件
1,在django项目下(app所在目录),新建vue项目,使用脚手架构建vue项目,vue create (项目名) 2,构建好以后,配置django: (1),配置settings: · 修改te ...
- vue项目和django项目交互补充,drf介绍,restful规范
目录 一.vue项目与django项目的交互 二.drf(Django-restframework) 1. drf主要知识点 2. drf框架安装 3. web接口(WEB API) 4. restf ...
- 服务器部署 Vue 和 Django 项目的全记录
本篇记录我在一个全新服务器上部署 Vue 和 Django 前后端项目的全过程,内容包括服务器初始配置.安装 Django 虚拟环境.python web 服务器 uWSGI 和反向代理 Nginx ...
- Vue+Django项目部署
本地项目配置 1 复制 luffy/settings/dev.py为prop.py 修改luffy/settings/prop.py中以下几项 (1) allow_hosts ALLOWED_HOST ...
- python框架django中结合vue进行前后端分离
一:创建django项目 1.django-admin startproject mysite # 创建mysite项目 2.django-admin startapp app01# 创建app01应 ...
- [译]如何使用 Docker 组件开发 Django 项目?
原文地址:Django Development With Docker Compose and Machine 以下为译文 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包 ...
- 直接用nose进行django项目测试并输出html报告
先说需求:1.测试django项目:2.打印测试报告(html格式)有以下几种测试方法:1.django自带的测试模块.在app目录下的tests.py文件中写测试类,类似这样: class MyTe ...
随机推荐
- 一个包含了 50+ C#/.NET编程技巧实战练习教程
DotNetExercises介绍 DotNetGuide专栏C#/.NET/.NET Core编程技巧练习集:C#/.NET/.NET Core编程常用语法.算法.技巧.中间件.类库.工作业务实操练 ...
- 八、FreeRTOS学习笔记-临界段代码保护及调度器挂起与恢复
临界段代码保护 什么是临界段:临界段代码也叫做临界区,是指那些必须完整运行,不能被打断的代码段 适用场合如: 问题:什么可以打断当前程序的运行? 1.临界段代码保护函数介绍 FreeRTOS 在进入临 ...
- golang类型转换模块之gconv
gf框架提供了非常强大的类型转换包gconv,可以实现将任何数据类型转换为指定的数据类型,对常用基本数据类型之间的无缝转换,同时也支持任意类型到struct对象的属性赋值.由于gconv模块内部大量使 ...
- golang配置读取值viper
viper简介 Viper是Go应用程序的完整配置解决方案,包括12-Factor应用程序.它旨在在应用程序中工作,并且可以处理所有类型的配置需求和格式.它支持: 设置默认值 从JSON.TOML.Y ...
- 【巧用set实现对有序数组O(logn)时间复杂度增、删、查、改、二分操作】codeforces 1041 C. Coffee Break
题意 第一行输入三个整数 \(n,m,d(1 \leq n \leq 2 * 10^5, n \leq m \leq 10^9, 1 \leq d \leq n)\),第二行输入 \(n\) 个整数, ...
- Nvidia Jetson Xavier NX安装GPU版pytorch与torchvision
前提是已经安装好了系统,并通过JetPack配置完了cuda.cudnn.conda等库. 1. 安装GPU版pytorch 在base环境上新建环境,python版本3.8,激活并进入. conda ...
- 使用 Windows Debugger 调试托管代码
使用 Windows Debugger 调试托管代码 https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/debugg ...
- FM的正交解调法
1.FM的模拟调制过程 FM信号是一种频率调制信号,其携带的信息保存在其信号的频率中,通过改变载波的频率来实现基带数据的传输. 其函数表达式如下: \[s(t) = A*cos(w_c*t + K ...
- nginx jupyterWeb
location /jupyterWeb/ { add_header X-Frame-Options SAMEORIGIN; add_header Access-Control-Allow-Origi ...
- Timestamp和LocalDateTime 互转
jdk:1.81.Timestamp 转 LocalDateTime Timestamp time = Timestamp.from(Instant.now());LocalDateTime loca ...