Django+Vue2 前后端分离

目录

1.创建django项目

2.配置django

3.创建Vue项目

4.完成


1.创建django项目

1,打开PyCharm创建一个创建Django项目

django-admin startproject demo

2,进入项目根目录,创建一个 App 作为项目后端

cd demo
python manage.py startapp backend             //backend就是app名称

2.配置django

1.在所创建的app(backend)中创建子路由(urls.py)

2.在刚创建的urls.py中配置接口路由

from django.conf.urls import url
from . import views
urlpatterns = [
    url('all/', views.get),#'all/'是前端get对应路由 views.get是views中对应函数
]

3.将app下的路由添加到demo下的urls.py中

from django.conf.urls import url,include
​
urlpatterns = [
    url(r'^', include('backend.urls')),
]

4.在demo下的settings.py中加入跨域访问

# INSTALLED_APPS 和 MIDDLEWARE 两个配置项setting.py文件初始化应该就是存在的
# 所以我们只需要在配置里加上就可以了
INSTALLED_APPS = [
...
    'backend',#app的名字
    'corsheaders', # pip install django-cors-headers 这个是为了防止跨域,具体请另查资料,我这里就不赘述了。
    # 'rest_framework', # pip install djangorestframework 方便我们写后端接口
...
]
MIDDLEWARE = [
...
    'corsheaders.middleware.CorsMiddleware',
...
]
​
CORS_ORIGIN_ALLOW_ALL = True 

5.在app下的views.py中写接口函数

from django.http import JsonResponse
​
def get(request):
​
    return JsonResponse({'name':'python'})

6.运行django:

python manage.py runserver

3.创建Vue项目

1.进入前端存放目录,运行:

vue-init webpack front//安装中把vue-router选上,我们须要它来做前端路由

2.进入front目录,运行:

npm install //安装vue所须要的node依赖

3.安装所需包并运行vue:

npm install
npm install --save axios vue-axios
npm run dev

4.在src/下的main.js全局导入axios:

// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
import router from './router'
import axios from 'axios'
import VueAxios from 'vue-axios'
​
//应用axios插件
Vue.use(VueAxios, axios)
// 配置后端路由
axios.defaults.baseURL = 'http://127.0.0.1:8000'
//将axios挂在全局上
Vue.prototype.$axios = axios
//关闭vue自带提示
Vue.config.productionTip = false
​
/* eslint-disable no-new */
new Vue({
  el: '#app',
  router,
  components: { App },
  template: '<App/>'
})

5.在src/components新建test.vue,此时前端界面应为:

6.向接口发送请求,获取数据(test.vue中写入)

<template>
  <div>{{name}}</div>
</template>
​
<script>
export default {
  data(){
    return{
      name:''
    }
  },
  methods:{
    getData () {  
      this.$axios
        .get('all/')
        .then(response=> { 
          this.name=response.data.name
          console.log(response.data)
        })
    },
  },
  mounted(){
    this.getData()
  }
}
</script>

7.在src/router/index.js下给写好的vue配置路由:

import Vue from 'vue'
import Router from 'vue-router'
import HelloWorld from '@/components/HelloWorld'
import test from '@/components/test'
​
Vue.use(Router)
​
export default new Router({
  // 启用history模式(默认为hash)
  model: 'history',
  routes: [
    {
  
    path: '/',
      name: 'HelloWorld',
      component: HelloWorld
    },
    {
      path: '/test',
      name: 'test',
      component: test
    }
  ]
})

4.完成

  • 9
    点赞
  • 95
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
Python是一种流行的编程语言,有非常丰富的库和框架可供使用。而Django是一个基于Python的开发框架,用于快速搭建Web应用程序。Vue是一种流行的JavaScript框架,用于构建用户界面。 当我们要搭建一个前后端分离的项目时,可以使用PythonDjango框架和Vue框架来实现。下面是大致的步骤: 1. 对于后端,我们可以使用Django框架来搭建RESTful API。首先,创建一个新的Django项目并设置好相关配置。然后,定义数据模型和数据库表,可以使用Django的ORM(对象关系映射)来简化数据库操作。接下来,创建视图函数来处理不同的API请求,可以通过序列化器将模型数据转换为JSON格式进行传输。最后,设置URL路由映射和权限控制,确保API的安全性和可访问性。 2. 对于前端,我们可以使用Vue框架来构建用户界面。首先,创建一个新的Vue项目并安装所需的依赖项。然后,创建组件来管理不同的页面和功能模块。在组件中,可以使用Vue的数据绑定和计算属性等功能来简化数据处理和状态管理。同时,可以使用Vue Router来管理页面之间的导航和路由,以及使用axios库来发送API请求和接收响应。 3. 在前后端之间进行通信时,前端通过axios发送HTTP请求到后端的API接口,后端处理请求并返回相应的数据。前端可以根据接口的返回结果来更新界面和展示数据。 总的来说,使用PythonDjango框架和Vue框架可以很好地实现前后端分离的项目。Django提供了强大的后端支持,可以快速搭建API接口,而Vue框架则提供了便捷的前端开发环境,可以轻松构建用户界面。通过这种搭配,我们可以高效地开发出功能完善、交互流畅的Web应用程序。
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值