美文网首页
(二)创建vue项目

(二)创建vue项目

作者: HC2 | 来源:发表于2020-12-23 21:41 被阅读0次

(一)安装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项目:


image.png

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
image.png

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

image.png

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


image.png

(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
  }

 ]
   })
image.png

(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
image.png

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


image.png

解决方法:注释这段代码


image.png

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


image.png

这是跨域问题,解决方案,

  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
image.png

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


image.png

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

image.png

重新提交:


image.png

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

相关文章

网友评论

      本文标题:(二)创建vue项目

      本文链接:https://www.haomeiwen.com/subject/cwcunktx.html