(一)安装node :下载地址为:https://nodejs.org/en/
1、检查是否安装成功
进入控制台: node -v 看到版本号即安装成功
lxdeMacBook-Air-2:~ s$ node -v
v11.5.0
2、检查npm
lxdeMacBook-Air-2:~ s$ npm -v
6.9.0
NPM是随同NodeJS一起安装的包管理工具
可通过npm install npm -g命令来升级npm
(2)、npm安装安装插件比较慢,安装cnpm(淘宝NPM镜像):npm install -g cnpm --registry=https://registry.npm.taobao.org,使用cnpm进行操作会比较快
(二)、搭建vue环境
1、全局安装:
npm install --global vue-cli
2、检查vue
lxdeMacBook-Air-2:~ s$ vue -V
3.5.5
(三)、创建vue项目:
vue init webpack front_app
Vue build ==> 打包方式,回车即可
Install vue-router ==> 是否要安装 vue-router
Use ESLint to lint your code ==> 是否需要 js 语法检测
Set up unit tests ==> 是否安装 单元测试工具
安装成功:生成vue项目:

vue项目目录讲解:
1、build:构建脚本目录
1)build.js ==> 生产环境构建脚本;
2)check-versions.js ==> 检查npm,node.js版本;
3)utils.js ==> 构建相关工具方法;
4)vue-loader.conf.js ==> 配置了css加载器以及编译css之后自动添加前缀;
5)webpack.base.conf.js ==> webpack基本配置;
6)webpack.dev.conf.js ==> webpack开发环境配置;
7)webpack.prod.conf.js ==> webpack生产环境配置;
2、config:项目配置
1)dev.env.js ==> 开发环境变量;
2)index.js ==> 项目配置文件;
3)prod.env.js ==> 生产环境变量;
3、node_modules:npm 加载的项目依赖模块
4、src:这里是我们要开发的目录,基本上要做的事情都在这个目录里。里面包含了几个目录及文件:
1)assets:资源目录,放置一些图片或者公共js、公共css。这里的资源会被webpack构建;
2)components:组件目录,我们写的组件就放在这个目录里面;
3)router:前端路由,我们需要配置的路由路径写在index.js里面;
4)App.vue:根组件;
5)main.js:入口js文件;
5、static:静态资源目录,如图片、字体等。不会被webpack构建
6、index.html:首页入口文件,可以添加一些 meta 信息等
7、package.json:npm包配置文件,定义了项目的npm脚本,依赖包等信息
8、README.md:项目的说明文档,markdown 格式
9、.xxxx文件:这些是一些配置文件,包括语法配置,git配置等
启动项目
:开发环境
npm run dev

浏览器访问:
http://localhost:8081/#/

(四)、开始vue项目
(1)、在src目录下创建个views文件

(2)、在views创建projectList.vue文件
(3)、在router目录下的index.js里面配置路由路径
import Vue from 'vue'
import Router from 'vue-router'
import HelloWorld from '@/components/HelloWorld'
const projectList = () => import('../views/projectList.vue'); //
Vue.use(Router)
export default new Router({
routes: [
{
path: '/',
name: 'HelloWorld',
component: HelloWorld
},
{
path: '/projectList', //访问路径
component: projectList,
name: '',
hidden: true,
projectHidden: true
}
]
})

(4)、vue文件下前端代码
<1>、我们使用 jquery 竟然请求数据
npm install jquery --save
<2>、projectList.vue
<template>
<div>
请输入项目名称:<input type="text" v-model="name">
<button @click="post_project">提交</button>
</div>
</template>
<script>
import $ from 'jquery' //引入jquery组件
export default {
data() {
return {
name: '', //定义一个name的变量
}
},
methods: {
//定义一个方法
post_project() {
let self = this;
$.ajax({
type: "get",
url: "http://127.0.0.1:8005/api/add_book",
async: true,
data: {
caption: self.name,
},
headers: {
},
timeout: 5000,
success: function(data) {
if (data.msg === 'success') {
alert("提交成功")
}
},
})
},
}
}
</script>
<style>
</style>
(5)、浏览器输入:
http://localhost:8081/projectList

在项目启动的时候可能会有这种报错

解决方法:注释这段代码

(6)、点击提交后无法访问

这是跨域问题,解决方案,
pip3 install django-cors-headers
进入我们django项目setting.py加上这段代码
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'corsheaders',#这解决跨域
'demo_app', #配置你的app
]
ROOT_URLCONF = 'demo.urls'
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'corsheaders.middleware.CorsMiddleware', # 这解决跨域
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
# 跨域忽略
CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_ALLOW_ALL = True

重新提交:跨域的问题已解决,但是有另外一个错误

解决方案:setting.py加上这段

重新提交:

到此:一个简单的前后端python +django +vue 的前后端分离 例子就完成了
网友评论