首页 > 其他分享 >VUE+Django前后端分离-第一部分

VUE+Django前后端分离-第一部分

时间:2022-08-15 14:00:11浏览次数:75  
标签:el vue color app 分离 django VUE import Django

一、创建django项目

1、创建django项目

在指定目录下,用django-admin startproject django_vue创建Django项目

2、在django项目下创建应用

 2.1 在django_vue目录下通过命令python manage.py startapp app 创建应用

2.2 将app加到settings配置项中

  2.3 新建接口

在app目录下的views里我们新增一个test-api接口,同时新增一个url.py文件,将新建接口添加到路由中

新建接口:

from django.shortcuts import render
from django.http import JsonResponse
from django.views.decorators.http import require_http_methods

# Create your views here.
@require_http_methods(["GET"])
def test_api(request):
    response = {}
    try:
        response['msg'] = 'success'
        response['data'] = 'django,vue 搭建前后端分离平台成功'
    except:
        response['msg'] = 'fail'
        response['data'] = 'django,vue 搭建前后端分离平台失败'
    return JsonResponse(response)

新加路由:

from django.urls import path
from . import views

urlpatterns = [
    path('testapi', views.test_api),
]

同时将app目录下的urls添加到django_vue下的url中,才可以完成完整的路由配置

from django.contrib import admin
from django.urls import path,include


urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/',include('app.urls'))
]

 启动Django项目,调用接口判断接口是否正常

 

二、前端环境搭建

1、在django_vue项目根目录下,创建前端工程appweb

vue-init webpack appweb

2、安装VUE依赖模块

npm install

npm install vue-resource

npm install element-ui

3、启动前端工程

npm run dev

此时项目入口为HelloWorld,位于src/components下面

三、前端页面布局

1、修改项目入口,将HelloWorld.vue删除,替换为index.vue

参考文档:https://blog.csdn.net/qq_34670974/article/details/100528064

index.vue:

<template>
  <div class="container">
      <el-container>
        <el-header>Header</el-header>
        <el-container>
          <el-aside width="200px">Aside</el-aside>
          <el-main>Main</el-main>
        </el-container>
      </el-container>
  </div>
</template>

<style>
  .el-header, .el-footer {
    background-color: #B3C0D1;
    color: #333;
    text-align: center;
    line-height: 60px;
  }

  .el-aside {
    background-color: #D3DCE6;
    color: #333;
    text-align: center;
    line-height: 200px;
  }

  .el-main {
    background-color: #FFFFFF;
    color: #333;
    text-align: left;

  }

  body > .el-container {
    margin-bottom: 40px;
  }

  .container{
    position: absolute;
    top:0;
    left: 0;
    width: 100%;
    height:100%;
  }
  .el-submenu [class^=el-icon-]{
    height: 20px;
  }
</style>

2、初始化vue实例中需要的插件

修改src/main.js文件:

import Vue from 'vue'
import App from './App'
import router from './router'
import ElementUI from 'element-ui'
import VueResource from 'vue-resource'
import 'element-ui/lib/theme-chalk/index.css'

Vue.config.productionTip = false

Vue.use(ElementUI)
Vue.use(VueResource)
/* eslint-disable no-new */
new Vue({
  el: '#app',
  router,
  components: { App },
  template: '<App/>'
})

3、启动前端,展示如下:

 

标签:el,vue,color,app,分离,django,VUE,import,Django
From: https://www.cnblogs.com/like1824/p/16587804.html

相关文章

  • vue源码阅读---vm实例上的属性
     vnode.$attrs:vnode.$slot:组件实例里插槽的内容;组价开始标签和组件结束标签里包裹的内容;vnode.children:普通元素组件的子节点;  vnode.componentInstacne:指向组件......
  • 12 Django 力度控制到按钮级别
    易理解的按钮控制:customer.html{%extends'layout.html'%}{%loadstatic%}{%loadpermission%}{%blockcontent%}<divstyle="margin-bottom:5px"c......
  • vue 项目的文件/文件夹上传下载
    ​4GB以上超大文件上传和断点续传服务器的实现随着视频网站和大数据应用的普及,特别是高清视频和4K视频应用的到来,超大文件上传已经成为了日常的基础应用需求。但是在很......
  • Vue.nextTick的使用的原理
    我们都知道JS有一个处理事件的机制也就是事件循环机制以及同步和异步事件循环的顺序,决定js代码的执行顺序。事件循环如下在执行完微任务之后才会去进行下一个宏......
  • vue2 绑定数组,变化无法更新view的解决方法
    vue绑定数组,更新数组的内容时,view没有更新,多数是因为直接给数组內的数据赋值了,如:this.student[i].name="JackFung";这样做vue是不会触发视图更新的。根据vue的官方文......
  • VUE学习-监听事件
    监听事件事件处理方法可以用v-on指令监听DOM事件,并在触发时运行一些JavaScript代码。<divid="app"> <buttonv-on:click="counter+=1">Add1</button> <p>The......
  • VUE学习-自定义指令
    自定义指令有的情况下,你仍然需要对普通DOM元素进行底层操作,这时候就会用到自定义指令。<divid="directive-demo"> <inputv-focus/></div>全局注册Vue.direct......
  • django的csrf跨站请求伪造
    1.什么是跨站请求伪造请看图:我们自行写了一个网站模仿中国银行,用户不知道是否是真的中国银行,并且提交了转账信息,生成一个form表单,向银行服务器发送转账请求,这个form表单......
  • django中视图函数的FBV和CBV
    1.什么是FBV和CBVFBV是指视图函数以普通函数的形式;CBV是指视图函数以类的方式。2.普通FBV形式defindex(request):returnHttpResponse('index')3.CBV形式3.1CBV形......
  • vue源码解析
    先进行语义解析各种vue命令生成模板语法树,再根据模板语法树使用createRender函数(render函数可使用自己定义的)创建render函数,在创建的同时使用闭包(函数柯里化)将模板语法......