IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> vue+django 会议室管理系统(一) -> 正文阅读

[Python知识库]vue+django 会议室管理系统(一)

本文整合Django和Vue.js 实现前后端分离项目环境,最终实现一个会议室管理系统。

一.前言

Django作为Python 三大Web框架之一,因其集成了大量的组件(例如: Models Admin Form 等等)而大受欢迎,但是他本身自带的template模板实在是有点弱.于是考虑整合Vue.js同时引入ElementUI 组件,可以更加快速高效的开发出美观实用的Web页面.

二.Django项目构建

1.创建django项目

打开命令行,进入对应目录下输入:

django-admin startproject meetingRoom

即可完成项目的新建,成功创建项目完成后文件夹结构如下图:
在这里插入图片描述
进入项目文件夹目录,在目录中输入命令

python manage.py runserver 0.0.0.0:8000

在浏览器输入你服务器的 ip(这里我们输入本机 IP 地址: 127.0.0.1:8000) 及端口号,如果正常启动,输出结果如下:
在这里插入图片描述

2.数据库配置

Django 对各种数据库提供了很好的支持,包括:PostgreSQL、MySQL、SQLite、Oracle。

Django 为这些数据库提供了统一的调用API。 我们可以根据自己业务需求选择不同的数据库。

MySQL 是 Web 应用中最常用的数据库。

本文采用MySQL

第一次使用MySQL需要安装 MySQL驱动,在项目文件夹目录下执行以下命令安装:

pip install pymysql

创建数据库:
Django无法直接创建数据库(只能操作到数据表层),我们需要手工创建MySQL数据库.
以下通过命令行创建 MySQL 数据库:meetingroom

create DATABASE meetingroom DEFAULT CHARSET utf8;

在这里插入图片描述
Django配置数据库

DATABASES = {
    'default': {
        # 'ENGINE': 'django.db.backends.sqlite3',
        # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
        # 自定义数据库
        'ENGINE': 'django.db.backends.mysql',  # 数据库引擎
        'NAME': 'meetingroom',  # 数据库名称
        'HOST': '127.0.0.1',  # 数据库地址,本机 ip 地址 127.0.0.1
        'PORT': 3306,  # 端口
        'USER': 'root',  # 数据库用户名
        'PASSWORD': '123456',  # 数据库密码
    }

在与 settings.py 同级目录下的 init.py 中引入模块和进行配置 (告诉 Django 使用 pymysql 模块连接 mysql 数据库)

import pymysql
pymysql.install_as_MySQLdb()

三.构建前端Vue项目

前提:已安装好nodejs和vue-cli脚手架
安装好后,新建一个前端工程目录:frontend
目录结构如下所示:
在这里插入图片描述

进入frontend目录,输入:npm run serve,再在浏览器打开http://localhost:8080/即可看到如下页面

在这里插入图片描述
打包前端项目
执行npm run build
打包完成
在这里插入图片描述

在这里插入图片描述

四、整合Django和Vue

1、为了让后端可以识别前端需求,我们须要在Django层注入header,用Django的第三方包django-cors-headers来解决跨域问题:
在项目根目录下输入命令:

pip install django-cors-headers

在settings.py中增加相关中间件代码

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'corsheaders.middleware.CorsMiddleware',     #添加此项
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
CORS_ORIGIN_ALLOW_ALL = True   #添加此项

2、修改Django路由
这一步我们通过Django路由配置连接前后端资源.

首先我们把Django的TemplateView指向我们刚才生成的前端dist文件

在meetingRoom目录下的urls.py中增加代码:


from django.conf.urls import url
from django.contrib import admin
from django.conf.urls import include
#新增
from django.views.generic import TemplateView
 
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    # 新增
    url( r'', TemplateView.as_view( template_name="index.html" ) )
]

在这里插入图片描述
3、添加模板目录
在这里插入图片描述
4、添加静态文件夹目录
在这里插入图片描述
5、启动服务

python mange runserver

在这里插入图片描述

遇到的问题

在这里插入图片描述
打开浏览器后页面显示空白。
在这里插入图片描述
查看报错信息如上所示
这是因为vue打包的dist文件下没有static文件夹

解决方法

修改vue打包配置
在frontend文件下新建vue.config.js,输入以下内容:

module.exports = {
    assetsDir: 'static'
} 

再重新打包vue项目
在这里插入图片描述

刷新浏览器,出现页面。
在这里插入图片描述

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-04-26 11:38:17  更:2022-04-26 11:40:15 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 16:42:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码