Vue+Django+MySQL搭建指南(个人全栈快速开发)

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 前言:本文适合有一定Vue或Django基础的开发者阅读,文中不会特别强调技术细节,只强调搭建的流程和配置,若有技术细节不懂请自行谷歌。一 技术栈选择前端Vue的所有技术栈: vue2 + vuex + vue-router + webpackUI库: element-ui网络请求:axios前端脚手架构建工具:vue-cli后端技术栈:Python+Django数据库: MySQL前端技术栈选择原因:Vue是如今最火的MVVM框架之一,它的优势是双向数据绑定、文件组件化、生态较完善等。
+关注继续查看

前言:本文适合有一定Vue或Django基础的开发者阅读,文中不会特别强调技术细节,只强调搭建的流程和配置,若有技术细节不懂请自行谷歌。

一 技术栈选择

前端Vue的所有技术栈: vue2 + vuex + vue-router + webpack

UI库: element-ui

网络请求:axios

前端脚手架构建工具:vue-cli

后端技术栈:Python+Django

数据库: MySQL

前端技术栈选择原因:Vue是如今最火的MVVM框架之一,它的优势是双向数据绑定、文件组件化、生态较完善等。

后端技术栈选择原因:Django是基于Python的一款轻量级的后端框架,适合个人全栈快速开发,我青睐于它的原因是它的ORM方便高效、配置简单清晰、自带token等。

二 项目初始化

本项目的系统环境是:Windows 

本项目的开发环境是:Node 8.11.2  + Vue 2.9.3 + Python 2.7.15 + Django 1.11.6

配置开发环境:

(1)安装Node.js 和 Python

(2)安装Django:

$ pip install Django==1.11.6

(3)安装cnpm(直接用npm可行,但需科学上网)

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

(4)安装Vue-cli脚手架构建工具

$ cnpm install -g vue-cli

工具介绍:

npm: Node.js下的包管理器。

webpack: 前端模块化工具,它主要的用途是通过 CommonJS 的语法把所有PC端需要发布的静态资源做相应的准备,比如资源的合并和打包。

vue-cli: 用户生成Vue工程模板。

三 项目搭建

(1)在命令行界面输入下列指令,创建Django应用——appName:

$ django-admin startproject appName

(2)进入创建的项目,创建应用app——childName:

$ cd appName

$ python manage.py startapp childName

(3)在appName的跟目录,利用vue-cli创建vue应用——vueName:

$ vue-init webpack vueName

(4)进入vueName,安装模块并打包:

$ cd vueName

$ cnpm install

$ cnpm run build

(5) 找到Django应用——appName根目录里的urls.py(即appName/urls.py),配置url路径:


img_c35af29d503cfba147a0bedba5fd6625.png
应用根目录的urls.py配置

(6)在childName文件根目录里的settings.py添加python的app应用:


img_945832916c72d2d744adca55d8201752.png
添加python的app应用

(7)本项目数据库为mysql,所以在childName文件根目录里的settings.py修改数据库信息:


img_0c575285f9d971db348ae3917b39bc38.png
修改数据库为mysql

(8)配置childName文件根目录里的settings.py,"DIRS"修改为['vueName/dist']:


img_95f79a5c7833b2d1e0ed261895150634.png
修改settings.py 的配置实例1

(9)修改Django的模板渲染路径及中国时区:


img_2ef27869920dc1753788a89b6638b4b1.png
修改settings.py 的配置实例2

(9) 在demo_app下views.py 中写方法,例如:


img_b34179f969cbde0d73fc117d6a08ef19.png
方法

(10)修改appName的urls,然后在childName文件夹中创建新的urls,作为views方法的urls:


img_3bbdf23f93bbe61cf81e08c8c8a3b638.png
一级urls
img_4dc6afe91bd1680e6dd4c1f347425e49.png
二级urls

此时访问数据的url为一级目录加二级目录,如‘/demo/get_data/’

(11) 在安装axios依赖,引入并配置相关模块后$ npm run build打包,然后$ python  manage.py runserver 测试接口:

下面是我写的简单测试实例:


img_d256e3264a1ec9f550cef17ceb64556e.png
前后端通信测试


img_69f5f252d779b0a2535bfd3c9f761a26.png
前后端测试成功

四 可能会遇到的坑

(1)我开启python服务器后,在url地址栏输入地址却跳转失败了,我该怎么办?

答:你写的是单页面应用,vue-router有两种模式,一种是hash,一种是history,这两种路由模式都不是真正的改变url地址,所以前端路由的设置的路由后端是访问不到,因此你必须在后端再次添加相应的url并将渲染页面指向dist下的index.html。

方法一:在urls中编写:

url(r'^$', TemplateView.as_view(template_name="index.html"))

方法二:在views中这样写

def index(request):

    return render(request, 'index.html'})

(2)我报错缺少字段是什么情况?

答:检查是否及时更新了models.py。更新的语法为:

python manage.py inspectdb > childName/models.py 

五 本项目架构上的缺点及解决办法:

缺点:不得不说,随着项目的不断扩大,本项目架构上的缺点变得越来越明显。因为,django只能渲染vue应用打包后的文件,这意味着当前端非常依赖后端数据库的数据时就会产生经常需要vue应用打包的情况,这浪费了很多时间。

解决办法:增添BFF层(用户体验适配层),利用Node做接口转接,Node调用Python接口传数据到前端,Python只做服务层。不过本方案也有明显的缺点,就是不太适合个人全栈开发。说到这里,大家如果有好的建议希望可以告诉我,十分感谢!

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1天前
|
JavaScript Python
django和vue 请求403 FORBIDDEN怎么办
在请求头里,添加X-CSRFToken, 取自浏览器里的cookie 再附上取cookie的源码
7 0
|
2月前
|
JavaScript 前端开发 关系型数据库
Django+Vue快速实现博客网站
Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,视图V和模版T。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。对于博客网站来说是典型的CMS应用。本文介绍通过Django+Vue的博客模版快速实现一个可用的博客网站。
116 1
|
4月前
|
JavaScript 前端开发 应用服务中间件
Linux--部署Django+DRF+vue项目
Linux--部署Django+DRF+vue项目
|
5月前
|
SQL 前端开发 JavaScript
基于python的租房网站-房屋出租租赁系统(python+django+vue)
该项目是基于python/django/vue开发的房屋租赁系统/租房平台,作为本学期的课程作业作品。欢迎大家提出宝贵建议。
95 1
|
5月前
|
SQL 前端开发 JavaScript
基于python的视频点播网站(python+django+vue开发的视频点播网站-视频管理系统)
平台采用B/S结构,后端采用主流的Python语言进行开发,前端采用主流的Vue.js进行开发。
112 0
|
6月前
|
前端开发
django+vue_给网站添加一个邮件反馈
django+vue_给网站添加一个邮件反馈
41 1
|
8月前
|
JSON 前端开发 JavaScript
Django结合Vue实现前端页面导出为PDF2
Django结合Vue实现前端页面导出为PDF
143 0
|
8月前
|
前端开发 JavaScript 测试技术
Django结合Vue实现前端页面导出为PDF1
Django结合Vue实现前端页面导出为PDF
66 0
|
11月前
|
缓存 前端开发 搜索推荐
Django+DRF+Vue+Mysql+Redis OUC软件工程作业
Django+DRF+Vue+Mysql+Redis OUC软件工程作业
Django+DRF+Vue+Mysql+Redis OUC软件工程作业
|
前端开发 JavaScript 数据库
Django+Vue开发生鲜电商平台之7.用户登录和注册功能(下)
基于DRF的前后端分离登录与单独使用Django登录的原理不同,不再需要CSRF验证,DRF提供了许多开箱即用的身份验证方案,并且还允许实现自定义方案。
Django+Vue开发生鲜电商平台之7.用户登录和注册功能(下)
推荐文章
更多