Django与Vue.js前后端分离项目搭建实战指南

月亮慢半拍
月亮慢半拍
发布时间:2026-10-13 | 3人浏览过
原创

本文详细介绍如何使用Django和Vue.js搭建前后端分离项目。内容涵盖项目目录结构规划、后端App创建、前端Vue项目初始化、Webpack打包配置,以及Django模板与静态文件的设置。同时提供Node.js、npm及vue-cli的安装教程,帮助开发者快速上手构建基础框架。

在撰写本文的过程中,笔者也同步学习了Markdown的基本用法。

作为一个初学者,笔者目前处于自主摸索阶段,尚未形成系统的知识体系。本文的核心目的是演示如何实现项目的前后端分离架构。

此处假设您的计算机已预先安装好Django和Vue.js环境。若尚未安装,请参考后文关于Vue.js的安装流程。关于Django的安装,鉴于此前已有相关介绍,此处不再赘述。

一、标准前后端分离项目搭建流程

1. 创建Django项目

执行以下命令:

django-admin startproject ulb_manager

生成的目录结构如下:

├── manage.py
└── ulb_manager
  ├── __init__.py
  ├── settings.py
  ├── urls.py
  └── wsgi.py

2. 进入项目根目录,创建用于后端逻辑的App

执行以下命令:

cd ulb_manager
python manage.py startapp backend

此时的目录结构相比基础版本,多出了一个backend文件夹。

3. 利用vue-cli创建Vue.js项目作为前端部分

执行以下命令:

vue-init webpack frontend

界面交互如下:

Project name:(直接按回车键使用默认值)

Project description:(直接按回车键使用默认值)

Auther:(输入您的姓名,可随意填写)

...:(保持默认选项Yes并按回车键。由于笔者处于入门阶段,对部分选项理解有限且未查询到相关说明,因此全部选择默认或Yes。)

目录结构中新增了一个frontend文件夹。

结构总结:

项目根目录下新增了两个文件夹:backend和frontend。其中,backend为Django的一个App,frontend为Vue.js项目。

4. 使用Webpack打包Vue.js项目

执行以下命令:

cd frontend
npm install
npm run build

5. 利用Django的通用视图TemplateView

在项目根目录下的urls.py(即ulb_manager/urls.py)中,使用通用视图创建最基础的模板控制器。

代码如下:

urlpatterns = [
  url(r'^admin/', admin.site.urls),
  url(r'^$',TemplateView.as_view(template_name="index.html")),
  #url(r'^api/',include('backend.urls', namespace='api'))
  #最后一行代码我注释掉,因为运行报错:Error:No module named 'backend.urls',暂时解决不掉,但是我运行的时候,注释掉这行代码,是能正常运行的。
]

6. 配置Django项目的模板搜索路径

打开settings.py(即ulb_manager/settings.py),定位到TEMPLATES配置项,并按以下方式修改:

TEMPLATES = [
  {
    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    #'DIRS': [],
    'DIRS':['frontend/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',
      ],
    },
  },
]

注:在之前学习Django时,需要在settings.py的INSTALLED_APPS配置项中添加App名称,因此笔者在此处也添加了'backend'。

7. 配置静态文件搜索路径

打开settings.py(ulb_manager/settings.py),定位到STATICFILES_DIRS配置项,并按以下方式配置:

# Add for vue.js
STATICFILES_DIRS = [
  os.path.join(BASE_DIR, "frontend/dist/static"),
]

若该配置项不存在,请手动添加。

至此,运行Django项目即可正常启动。运行后的界面如下:

运行界面

二、Vue.js环境安装指南

若您的计算机未安装Vue.js,请参考以下安装步骤:

1. Node.js

Vue.js推荐的运行环境为Node.js,因此笔者首先安装了Node.js。

访问Node.js官网,下载最新的v6.11.1版本。

2. npm

npm已集成于Node.js中,无需单独安装。

3. cnpm

在命令行中输入以下命令:

npm install -g cnpm --registry=http://registry.npm.taobao.org

等待安装过程完成。

4. 安装vue-cli脚手架构建工具

在命令行中输入以下命令:

npm install -g vue-cli

等待安装结束。

至此,vue-cli安装完毕。

注:目前尚不清楚如何在Markdown中展示文件的目录树结构。

内容有所调整,因为完全照搬原版代码无法直接运行。笔者编写了一个最基础的框架,过程如同无头苍蝇般摸索(此外,由于负担不起云主机费用,新手阶段确实无需购买)。

使用Markdown感觉十分自由,且能够调用部分HTML指令,颇具趣味。尽管笔者尚未完全掌握其能调用的所有指令范围……

以上就是本文的全部内容,希望对各位的学习有所帮助,也欢迎大家多多支持本站。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表