vue的初识与简单使用---前后端分离通过接口调取数据

vue的安装

#### 1、环境搭建
‘‘‘
- 安装node

```
官网下载安装包,傻瓜式安装:https://nodejs.org/zh-cn/
```

- 安装cnpm

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

- 安装脚手架

```
cnpm install -g @vue/cli
```

- 清空缓存处理

```
npm cache clean --force
```

#### 2、项目的创建

- 创建项目

```js
vue creat 项目名
// 要提前进入目标目录(项目应该创建在哪个目录下)
// 选择自定义方式创建项目,选取Router, Vuex插件
```

- 启动/停止项目

```js
npm run serve / ctrl+c
// 要提前进入项目根目录
```

- 打包项目

npm run build
//要在项目根目录下进行打包操作
‘‘‘

1. vue 是简单的布置前端页面的框架

在vue项目里面 views 里面放入的是跳转的页面组件

2.
在vue项目里面 App.vue 是主要的页面组件,如果创建新的页面组件就需要添加

<div id="nav">
      <router-link to="/">Home</router-link> |
      <router-link to="/about">About</router-link>|
      <router-link to="/freecourse">FreeCourse</router-link>    #这个是新增加的组件
</div>

3.
在vue项目里面 router.js 路由里面写路径:

import FreeCourse from ‘./views/freecourse.vue‘     #加载

        {
            path: ‘/freecourse‘,
            name: ‘freecourse‘,
            component: FreeCourse
        },
       #添加路由地址

4.
新增的组件让他生效做配置

<template>
    <div class="about">
        <h1>这是免费课程</h1>
        {{course_list}}         # {{*****}} 是动态渲染用的
        <p v-for="course in course_list">{{course}}</p>     #这里是用for语句循环显示渲染出来的内容
    </div>

</template>
######## template 是专门写渲染踹的内容

<script>
    export default {
        name: ‘freecourse‘,     #这里的name指向的是路由的名字
        data: function () {     #data 是让他渲染出来列表中的数据显示
            return {
                course_list: [‘python课程‘, ‘linux‘, ‘go语言‘]
            }
        }
    }
</script>
########script 是专门写策略的好让他可以在页面渲染出来想要的内容

5.
使用vue的ajax的发送请求方法

 1   安装: npm install axios  安装好了在package.json 可以看到
 2
 3     在 main.js 中配置:
 4         //导入axios
 5         import axios from ‘axios‘
 6         //把axios对象付给$http
 7         Vue.prototype.$http=axios
 8
 9     在组件的js代码中写:
10
11 <template>
12     <div class="about">
13         <h1>这是免费课程</h1>
14         <!--{{course_list}}-->
15         <p v-for="course in course_list">{{course}}</p>
16         <button @click="init">点我</button>       #就是ajax请求,点击触发
17     </div>
18     <!--{{course_list}}-->
19 </template>
20 #############模板显示内容
21
22 <script>
23     export default {
24         name: ‘freecourse‘,
25         data: function () {
26             return {
27                 course_list: []             #这里设置为空就可以,数据驱动页面
28             }
29         },
30         methods: {                          #这里就是axios 发送请求的实现
31             ‘init‘: function () {
32                 var _this = this            #这里 吧this 赋值给_this
33                 this.$http.request({
34                 //向下面的地址发送get请求
35                 url:‘http://127.0.0.1:8078/course/‘,        #url 指向的是后端发送请求的接口
36                 method:‘get‘                        #设置请求模式
37             }).then(function (response) {
38                 //response.data才是真正的数据
39                 console.log(response.data)
40                 _this.course_list=response.data     #前面赋值给_this 拿到的数据给到course_list
41             })
42             }
43
44         },
45          mounted: function () {      //这段代码就是不需要点击事件了,当页面跳转到指定的,自动渲染页面了
46             this.init()
47
48         }
49     }
50 </script>

6.

后端:
解决跨域问题:
创建一个文件 MyMiddle.py

from django.utils.deprecation import MiddlewareMixin

class MyMiddleware(MiddlewareMixin):
    def process_response(self, request, response):
        # 处理了简单请求
        response[‘Access-Control-Allow-Origin‘] = ‘*‘
        # 处理非简单请求
        if request.method == ‘OPTIONS‘:
            response[‘Access-Control-Allow-Headers‘] = ‘*‘
            # response[‘Access-Control-Allow-Methods‘]=‘PUT,PATCH‘
            response[‘Access-Control-Allow-Methods‘] = ‘*‘

        return response

在settings内添加解决跨域问题

MIDDLEWARE = [
    ‘app.MyMiddle.MyMiddleware‘
]

在视图函数中创建简单的一个数据信息:
from  rest_framework.views import APIView
from  rest_framework.response import Response

class Course(APIView):
    def get(self,request):
        return  Response([‘python课程‘, ‘linux‘, ‘go语言‘,‘dasfdasfdasf‘])

7.

后端开放用户上传图片接口:

    -开放media路径
        -创建meidia文件夹(在根路径下)
        -在setting中配置:
            MEDIA_ROOT=os.path.join(BASE_DIR,‘media‘)
        -在urls.py中
            from django.views.static import serve
            from luffy_city import settings
            urlpatterns = [
                url(r‘^media/(?P<path>.*)‘, serve,{‘document_root‘:settings.MEDIA_ROOT}),
            ]

原文地址:https://www.cnblogs.com/gukai/p/10651438.html

时间: 2024-09-29 16:46:46

vue的初识与简单使用---前后端分离通过接口调取数据的相关文章

一个简单的前后端分离的方案

背景: 1.实现前后端绝对分离.项目迭代过程中,前端后端各自上线,互不影响互不依赖,解决前端逻辑的修改需要依赖后端同学发新包重新上线的问题. 2.保证页面文件的静态化,提高服务相应效率. 3....方案: 1.前后端通信——完全走ajax,使用服务器代理中转(如配置nginx)解决跨域2.file include *本地开发使用nodejs的express框架搭建服务端环境,ejs作为服务端的模板引擎,解决html页面无法使用include file的问题 *上线发布时,使用grunt的ejs任

webpack 前后端分离开发接口调试解决方案,proxyTable解决方案

如果你有单独的后端开发服务器 API,并且希望在同域名下发送 API 请求 ,那么代理某些 URL 会很有用. dev-server 使用了非常强大的 http-proxy-middleware 包.更多高级用法,请查阅其文档. 在 localhost:3000 上有后端服务的话,你可以这样启用代理: proxy: { "/api": "http://localhost:3000" } 请求到 /api/users 现在会被代理到请求 http://localhos

前后端分离之——接口数据返回---标准格式

开发中,如果前端和后端,在没有统一返回数据格式,我们来看一下会发生什么: 后台开发人员A,在接口返回时,习惯返回一个返回码code=0000,然后返回数据: 后台开发人员B,在接口返回时,习惯直接返回一个boolean类型的success=true,然后返回数据: 后台开发人员C,在接口返回时,习惯在接口失败时返回码为code=0000. 可以看到,上面的三个开发人员,都没有大问题,没有谁对谁错,只要给前端接口文档,前端都是可以接上接口的.但是,在项目功能越来越多,接口数量持续增长时,对开发人员

django前后端分离 form_03(验证,数据查询,代码优化)

1.优化代码 把form验证的返回报错写成一个共用的类 该类在工程下建立了一个uitls-tools.py class FormatErrMsg: @property #装饰器-属性方法 调用的时候不需要加() def error_msg(self): #self.get_json_data() 是form自带的友好的报错提示 返回的是一个字典 message = '' for error_params, v in self.errors.get_json_data().items(): err

ASP.NET Core 实战:使用 ASP.NET Core Web API 和 Vue.js 搭建前后端分离项目

 一.前言 这几年前端的发展速度就像坐上了火箭,各种的框架一个接一个的出现,需要学习的东西越来越多,分工也越来越细,作为一个 .NET Web 程序猿,多了解了解行业的发展,让自己扩展出新的技能树,对自己的职业发展还是很有帮助的.毕竟,现在都快到9102年了,如果你还是只会 Web Form,或许还是能找到很多的工作机会,可是,这真的不再适应未来的发展了.如果你准备继续在 .NET 平台下进行开发,适时开始拥抱开源,拥抱 ASP.NET Core,即使,现在工作中可能用不到. 雪崩发生时,没有一

SpringBootSecurity学习(12)前后端分离版之简单登录

前后端分离 前面讨论了springboot下security很多常用的功能,其它的功能建议参考官方文档学习.网页版登录的形式现在已经不是最流行的了,最流行的是前后端分离的登录方式,前端单独成为一个项目,与后台的交互,包括登录认证和授权都是由异步接口来实现.在前后端不分离的应用模式中,前端页面看到的效果都是由后端控制,由后端渲染页面或重定向,也就是后端需要控制前端的展示,前端与后端的耦合度很高.这种应用模式比较适合纯网页应用, 但是当后端对接App时,App可能并不需要后端返回一个HTML网页,而

从0开始,构建前后端分离应用

最近业余时间比较充足,想开发一个小系统.作为自己的技术积累 后端使用Spring+SpringMVC+Mybatis框架.前端使用Vue+iView作为基础开发一个前后端分离的SPA应用 目录 1.环境搭建 1.1 Maven+Nexus搭建后台构建环境 1.2 webpack搭建后端构建环境 2.前端开发 3.后端开发 环境简介 由于是个人练习的小项目,因此开发环境设计也很简单.物理环境包括一台dbServer.一台配置服务器.一台应用服务器 服务器名称  服务器IP  操作系统  部署内容

前后端分离开发与跨域问题

前后端分离 传统开发方式 曾几何时,JSP和Servlet为Java带来了无限风光,一时间大红大紫,但随着互联网的不断发展,这样的开发方式逐渐显露其弊端,在移动互联网炙手可热的今天,应用程序对于后台服务的要求发生了巨大的变化; 传统的项目开发与交互流程: 在传统的web开发中,页面展示的内容以及页面之间的跳转逻辑,全都由后台来控制,这导致了前后端耦合度非常高,耦合度高则意味着,扩展性差,维护性差,等等问题 传统开发的问题如下: 耦合度高 调试麻烦,出现问题时往往需要前后台一起检查 开发效率低,前

前后端分离跨域问题解决方案

问题 因为最近在学习vue和springboot.用到了前后端分离.前端webpack打包运行的时候会启动nodejs的服务器占用8080端口,后端springboot自带tomcat启动占用1111端口(我自己设置的)...导致前端请求的ajax到后台会产生跨域问题...然后自己试了试发现有2种办法都可以解决. 利用SpringMVC @CrossOrigin注解 1 package com.labofjet.system.controller; 2 3 import org.slf4j.Lo