Django5+Vue3 系列文章


前言

此项目采用 Django 框架的 5.0.7 版本进行开发。
Django 5.0 支持的 Python 版本为 3.10、3.11 和 3.12。
CSDN 专栏链接: ~快捷传送门: 留个赞再走呗 😭! ~

pycharm 初始化 django5 项目

image

创建 MySQL 数据库

MySQL 创建 oa 数据库

CREATE DATABASE oa DEFAULT CHARACTER SET utf8mb4;

更改项目 settings 配置

配置数据库

DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.mysql",
        "NAME": "oa",
        "USER": "root",
        "PASSWORD": "<password>",
        "HOST": "127.0.0.1",
        "PORT": 3306
    }
}

安装 rest_framework


# Application definition

INSTALLED_APPS = [
    "django.contrib.admin",
    "django.contrib.auth",
    "django.contrib.contenttypes",
    "django.contrib.sessions",
    "django.contrib.messages",
    "django.contrib.staticfiles",

    # 安装rest_framework
    'rest_framework',
]

关闭 CSRF 保护

MIDDLEWARE = [
    "django.middleware.security.SecurityMiddleware",
    "django.contrib.sessions.middleware.SessionMiddleware",
    "django.middleware.common.CommonMiddleware",
    # 关闭CSRF保护
    # "django.middleware.csrf.CsrfViewMiddleware",
    "django.contrib.auth.middleware.AuthenticationMiddleware",
    "django.contrib.messages.middleware.MessageMiddleware",
    "django.middleware.clickjacking.XFrameOptionsMiddleware",
]

在本项目中,由于我们不再依赖 Django 模板系统,且所有身份验证流程均通过 JWT Token 实现,因此 CSRF(跨站请求伪造)攻击的威胁已被有效缓解。鉴于此,我们建议禁用 Django 的 CSRF 保护机制。此举不仅简化了前端页面的渲染流程,避免了频繁获取 CSRF Token 的繁琐操作,同时也与我们采用的基于 JWT 的身份验证策略相契合。

总结

在本项目开发过程中,我们利用 PyCharm 快速搭建了 Django 5 项目,并成功配置了相应的数据库。同时,对 settings.py 进行了适当调整,以确保项目配置的优化和适配。