Django3+Vue3进行前后端开发环境搭建

背景

本文基于具备一定python后端基础,想通过基于Django,结合时下热门的前端框架Vue,来了解web前后端开发的角度作总结描述。
因此,本文假定已经安装好了python环境、Django模块。

环境需求

  • python开发环境
  • Django模块
  • Node.js
  • Vue-Cli

环境准备

Node.js

node.js安装参考:https://www.runoob.com/nodejs/nodejs-install-setup.html

Vue-Cli

npm安装模块速度慢,这里先安装cnpm

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

安装vue-cli

cnpm install -g @vue/cli

创建前端项目

cd /d D:\myProjects\vue # cd到指定目录,将在该目录下创建前端项目
vue create myfrontend #通过vue-cli创建快速创建前端项目,myFrontend是自定义的项目名字

此时出现,因为笔者安装的vue3环境,且这里仅仅为了演示环境搭建过程,所以选择Default(Vue3)。
但Manually是面向生产的项目更加需要的。
Default和Manually的区别:
https://cli.vuejs.org/zh/guide/creating-a-project.html#vue-create
在这里插入图片描述
等待一会,出现如下界面,这前端项目创建完成。
在这里插入图片描述
运行前端项目

cd myfrontend
npm run serve

在这里插入图片描述
访问前端项目
在这里插入图片描述
至此,前端项目创建完毕,接下来开始创建后端项目。

创建后端项目

cd /d D:\myProjects\python # cd到指定目录,在该目录下创建后端项目。
django-admin startproject myDjango # 创建后端项目
cd myDjango # cd到后端项目
python manage.py startapp myApp #为后端项目创建一个应用
python manage.py runserver #启动后端项目

在这里插入图片描述

浏览器访问:
在这里插入图片描述

至此后端项目创建完成。接下来是前后端连接了。

连接前后端

编译前端项目

Vue3直接编译后生成的dist目录,已经不包含static文件夹了,但是django访问静态资源靠一个配置:STATIC_URL,这个配置的默认值是STATIC_URL = ‘/static/’,即在static文件夹中访问静态资源。dist目录中没有static文件夹,就会出现404找不到资源的报错。
此处解决方法参考:
网络毒刘的博文:https://blog.csdn.net/qq_41856814/article/details/105834130
Django官方文档对STATIC_URL的说明:
https://docs.djangoproject.com/en/2.1/ref/settings/#std:setting-STATIC_URL
Vue关于可选配置的说明:
https://cli.vuejs.org/zh/config/#assetsdir
具体解决方法是:

  1. 在前端项目根目录(此处是D:\myProjects\vue\myfrontend)创建vue.config.js
  2. 填写如下内容,该配置指定放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir (默认是./dist)的) 目录。
module.exports = {
    assetsDir: 'static'
};

然后执行编译命令。

cd /d D:\myProjects\vue\myfrontend
npm run build

在这里插入图片描述

此时,在前端项目目录里,会出现一个dist文件夹。
在这里插入图片描述

将dist文件夹拷贝到后端项目里,本文中的位置如下:
在这里插入图片描述

修改Django项目配置

在myDjango/settings.py中修改:
在这里插入图片描述
在这里插入图片描述
在D:\myProjects\python\myDjango\myDjango\urls.py修改:
在这里插入图片描述

启动Django服务器

python manage.py runserver

在这里插入图片描述
端口是8000,说明是从后端Django服务访问到前端页面的。
前后端开发环境搭建完成。
接下来就是分别进行前端项目和后端项目的开发任务了。

个人网站

linchao.cc 欢迎交流

很高兴为你提供一个Django+Vue3+ElementPlus后端分离的demo。 ## 后端部分 首先,我们需要创建一个Django项目。在命令行中输入以下命令: ``` django-admin startproject project_name ``` 然后,我们需要创建一个应用程序。在命令行中输入以下命令: ``` python manage.py startapp app_name ``` 接下来,我们需要安装一些必要的库。在命令行中输入以下命令: ``` pip install djangorestframework django-cors-headers ``` 接下来,我们需要在`settings.py`文件中添加以下代码: ```python INSTALLED_APPS = [ ... 'rest_framework', 'corsheaders', 'app_name', ] MIDDLEWARE = [ ... 'corsheaders.middleware.CorsMiddleware', 'django.middleware.common.CommonMiddleware', ] CORS_ORIGIN_ALLOW_ALL = True ``` 现在,我们已经完成了后端部分的设置。我们可以开始编写API。 在`app_name`中创建一个名为`api.py`的文件,并编写以下代码: ```python from rest_framework.decorators import api_view from rest_framework.response import Response @api_view(['GET']) def hello_world(request): return Response({"message": "Hello, World!"}) ``` 这是一个简单的API,当我们向`/api/hello`发送GET请求时,它将返回一个JSON响应,其中包含“Hello, World!”消息。 最后,在`urls.py`文件中添加以下代码: ```python from django.urls import path from . import api urlpatterns = [ path('api/hello', api.hello_world), ] ``` 现在,我们已经完成了后端部分的设置。我们可以在终端中运行`python manage.py runserver`命令来启动服务器。 ## 端部分 首先,我们需要安装Vue CLI。在命令行中输入以下命令: ``` npm install -g @vue/cli ``` 然后,我们需要创建一个Vue项目。在命令行中输入以下命令: ``` vue create project_name ``` 接下来,我们需要安装ElementPlus。在命令行中输入以下命令: ``` npm i element-plus -S ``` 接下来,我们需要在`main.js`文件中添加以下代码: ```javascript import { createApp } from 'vue' import App from './App.vue' import ElementPlus from 'element-plus' import 'element-plus/lib/theme-chalk/index.css' createApp(App).use(ElementPlus).mount('#app') ``` 现在,我们已经完成了端部分的设置。我们可以开始编写页面。 在`src`中创建一个名为`HelloWorld.vue`的文件,并编写以下代码: ```vue <template> <div> <h1>{{ message }}</h1> </div> </template> <script> export default { data() { return { message: '' } }, created() { fetch('http://localhost:8000/api/hello') .then(response => response.json()) .then(data => this.message = data.message) } } </script> ``` 这是一个简单的页面,它将从我们的API中获取消息并显示在页面上。 最后,在`App.vue`文件中添加以下代码: ```vue <template> <HelloWorld /> </template> <script> import HelloWorld from './components/HelloWorld.vue' export default { components: { HelloWorld } } </script> ``` 现在,我们已经完成了端部分的设置。我们可以在终端中运行`npm run serve`命令来启动端服务器。 现在,我们可以在浏览器中访问`http://localhost:8080`,应该可以看到一个页面,其中包含“Hello, World!”消息。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值