Django+Vue.js搭建前后端分离项目的示例


Posted in Javascript onAugust 07, 2017

在写这篇文章的时候,顺带学习了一下关于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',
      ],
    },
  },
]

PS:之前学习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项目已经可以正常运行了。正常运行的界面如下:

Django+Vue.js搭建前后端分离项目的示例

运行界面

二,安装vue.js

如果电脑上,没有vue.js,以下是安装vue.js的过程:

1.node.js

vue.js的推荐安装环境是node.js,因此,我是先安装的node.js。

登陆node.js官网,下载最新的v6.11.1版本。

2.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已经安装完成。

PS:暂时摸不清楚如何把文件的目录树结构在Markdown里写出来。

有所修改,因为完全按照原版搬上来根本无法运行。写了一个最基本的框架。像个无头苍蝇一样……(而且也买不起云主机……新手也没必要买)

Markdown用起来觉得很自由,而且还能调用一些html的指令,还是蛮有意思的,虽然还没摸清楚,到底能调用多少、哪些指令……

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery中dom操作和事件的实例学习-表单验证
Nov 30 Javascript
S2SH整合JQuery+Ajax实现登录验证功能实现代码
Jan 30 Javascript
js继承call()和apply()方法总结
Dec 08 Javascript
jQuery实现仿淘宝带有指示条的图片转动切换效果完整实例
Mar 04 Javascript
JavaScript使用function定义对象并调用的方法
Mar 23 Javascript
jQuery右侧选项卡焦点图片轮播特效代码分享
Sep 05 Javascript
基于JQuery打造无缝滚动新闻步骤详解
Mar 31 Javascript
jQuery实现web页面樱花坠落的特效
Jun 01 jQuery
JS+HTML5 FileReader实现文件上传前本地预览功能
Mar 27 Javascript
AngularJS实现与后台服务器进行交互的示例讲解
Aug 13 Javascript
vue实现给div绑定keyup的enter事件
Jul 31 Javascript
用JavaScript实现贪吃蛇游戏
Oct 23 Javascript
React进阶学习之组件的解耦之道
Aug 07 #Javascript
详解前端路由实现与react-router使用姿势
Aug 07 #Javascript
React中使用collections时key的重要性详解
Aug 07 #Javascript
react路由配置方式详解
Aug 07 #Javascript
深入理解vue.js中$watch的oldvalue与newValue
Aug 07 #Javascript
JavaScript调试之console.log调试的一个小技巧分享
Aug 07 #Javascript
react native仿微信PopupWindow效果的实例代码
Aug 07 #Javascript
You might like
PHP+Jquery与ajax相结合实现下拉淡出瀑布流效果【无需插件】
2016/05/06 PHP
Yii 2中的load()和save()示例详解
2017/08/03 PHP
yii2.0整合阿里云oss上传单个文件的示例
2017/09/19 PHP
php单元测试phpunit入门实例教程
2017/11/17 PHP
php和js实现根据子网掩码和ip计算子网功能示例
2019/11/09 PHP
Prototype使用指南之range.js
2007/01/10 Javascript
js null undefined 空区别说明
2010/06/13 Javascript
js写一个弹出层并锁屏效果实现代码
2012/12/07 Javascript
Javascript 中创建自定义对象的方法汇总
2014/12/04 Javascript
Bootstrap每天必学之js插件
2015/11/30 Javascript
JS实现刷新父页面不弹出提示框的方法
2016/06/22 Javascript
jQuery使用getJSON方法获取json数据完整示例
2016/09/13 Javascript
微信小程序 教程之条件渲染
2016/10/18 Javascript
jQuery中ajax获取数据赋值给页面的实例
2017/12/31 jQuery
前端Electron新手入门教程详解
2019/06/21 Javascript
微信小程序跳转到其他网页(外部链接)的实现方法
2019/09/20 Javascript
JavaScript实现文件下载并重命名代码实例
2019/12/12 Javascript
javascript操作向表格中动态加载数据
2020/08/27 Javascript
[08:38]DOTA2-DPC中国联赛 正赛 VG vs Elephant 选手采访
2021/03/11 DOTA
一个简单的python程序实例(通讯录)
2013/11/29 Python
使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”
2018/03/23 Python
如何在Django中设置定时任务的方法示例
2019/01/18 Python
python线程中的同步问题及解决方法
2019/08/29 Python
python 实现任务管理清单案例
2020/04/25 Python
Python实现动态循环输出文字功能
2020/05/07 Python
意大利体育用品网上商城:Nencini Sport
2016/08/18 全球购物
中国最大的潮流商品购物网站:YOHO!BUY有货
2017/01/07 全球购物
优秀员工自荐信范文
2013/10/05 职场文书
协议书格式
2014/04/23 职场文书
市场营销毕业求职信
2014/08/07 职场文书
小学感恩节活动策划方案
2014/10/06 职场文书
党员个人年度总结
2015/02/14 职场文书
售后前台接待岗位职责
2015/04/03 职场文书
CSS3 实现NES游戏机的示例代码
2021/04/21 HTML / CSS
关于nginx 实现jira反向代理的问题
2021/09/25 Servers
Python 数据可视化之Seaborn详解
2021/11/02 Python