栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

django+vue3项目搭建

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

django+vue3项目搭建

整体目录建议
/myproject                           // 项目目录

|-- docs/                            // 项目相关资料保存目录
|-- server/                          // 后端代码
|-- front/                           // 前端代码
|-- .gitignore                       // git忽略文件配置
django后台搭建

后台的目录结构,针对官方建议的格式有所调整

/server

|-- logs/                            // 日志
|-- server/                          // 项目主应用,开发时的代码保存
|   |-- apps/                        // 开发者的代码保存目录,以模块[子应用]为目录保存
|   |-- libs/                        // 第三方类库的保存目录[第三方组件、模块]
|   |-- settings/
|   |   |-- dev.py				     // 项目开发时的本地配置
|   |   |-- prod.py					 // 项目上线时的运行配置
|   |   |-- test.py					 // 测试人员的配置文件
|   |-- urls.py                      // 总路由
|   |-- utils/                       // 多个模块[子应用]的公共函数类库[自己开发的组件]
|-- scripts/                         // 保存项目运营时的脚本文件
|-- manage.py

由于django的manage.py默认配置为后台根目录的setting.py,按照以上目录是不匹配的

def main():
    """Run administrative tasks."""
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'server.settings')

我们可以将django默认的setting.py配置复制到settings/dev.py或者settings/prod.py进行自定义配置,所以manage.py可以改为

def main():
    """Run administrative tasks."""
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'server.settings.dev')

如果配置了服务器,关于wsgi的配置也需要做适应修改

vue前端搭建

前端目录结构:常规vue推荐目录

/front

|-- dist/                            // 打包目录
|-- node_modules/                    // npm加载项目的依赖模块
|-- public/                          // 静态资源目录,不会被webpack构建
|-- src/                             // 源码目录
|   |-- assets/                      // 资源目录,这里的资源会被wabpack构建
|   |-- components/                  // 组件目录,页面用到的组件一般放在这,里面可以根据模块再细分目录
|   |-- router/						 // 前端路由
|   |-- store/						 // 应用级数据(state)
|   |-- views/						 // 页面目录
|   |-- App.vue                      // 目的主组件,所有页面都是在该组件下进行切换的
|   |-- amin.js                      // 项目的入口文件,作用是初始化 vue 实例,并引入所需要的插件
|-- .browserslistrc                  // 配置兼容浏览器
|-- .editorconfig					 // 编辑格式配置
|-- .eslintrc.js					 // ESlint 检查配置
|-- babel.config.js					 // babel配置文件
|-- package.json					 // 存放项目的依赖配置(比如 vuex,element-UI)
|-- vue.config.js					 // vue 的配置文件
...

判断是否安装nodejs环境

# 可能npm版本落后,执行指令更新至最新
npm install -g npm

判断是否安装vuejs

# 未安装的情况
npm install -g @vue/cli
# 安装完成再执行上图判断是否可用vue

新建vue项目

vue create my_vue


选择default则会自动创建完成,选择最后一项可自行选择配置,我选择自行配置

前后端连接(两种方式) 前端将打包后文件夹放入django静态资源目录

vue打包后其实可以当做django的内部静态页面,访问网页先获取这些静态页面渲染,再通过django接口请求数据

方式一:前端打包目录与django静态文件夹指向同一路径

django访问静态资源靠一个配置:STATIC_URL,这个配置的默认值是STATIC_URL = ‘/static/’,即在static文件夹中访问静态资源。dist目录中没有static文件夹,就会出现404找不到资源的报错。
具体解决方式:
前端webpack打包配置修改,指定放置生成的静态资源 (js、css、img、fonts) 的目录

// vue.config.js
const { defineConfig } = require('@vue/cli-service');

module.exports = defineConfig({
  transpileDependencies: true,
  assetsDir: 'static'  // 加上这一句,指定静态文件统一放在static目录
});

这样,前端打包后,会自动生成这样的结构

然后配置django.settings:比如我们打包出来dist文件夹,将它放在django根目录

|-- my_django/
|   |-- dist/  
|   |	|-- static/ 



指定入口页面,my_django/urls.py

方式二:Nginx动静分离

配置Nginx静态目录,这样静态文件的请求由Nginx直接Nginx处理直接返回,不会再转发django后台处理
找到Nginx配置文件nginx.conf

server{
	...
	location /static {
		alias /var/www/my_django/dist/static;
	}
	
	location / {
		...
	}
	...
}

前端还是改webpack配置,使之静态文件的请求都含有/static

// vue.config.js
const { defineConfig } = require('@vue/cli-service');

module.exports = defineConfig({
  transpileDependencies: true,
  assetsDir: 'static'  // 加上这一句,指定静态文件统一放在static目录
});
跨域配置

跨域配置暂未尝试,网上也有较多的教程

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/887435.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号