vue和Django快速创建项目

一、VUE

1.创建 Vue 3 + JavaScript 项目
bash 复制代码
npm create vite@latest 项目名称 -- --template vue
创建 Vue 3 + TypeScript 项目
bash 复制代码
npm create vite@latest 项目名称 -- --template vue-ts
2.然后
bash 复制代码
cd 项目名称
npm install
npm install axios  # 发送 API 请求
npm install pinia  # Vue 3 推荐的状态管理库
npm install element-plus # ✅ 安装 Element Plus (适用于 Vue 3)
npm install vue-router # ✅ Vue 3 路由系统
npm install vueuse  # ✅ Vue 工具集合,处理常见问题
npm install dayjs  # ✅ 处理日期时间,替代 moment.js
npm install qs  # ✅ 处理复杂的 URL 参数
npm install @vueuse/core
npm install vue-i18n
npm install vue-toastification
npm install vue-meta
npm install lodash
npm install dayjs	
npm run dev
或者使用package.json
bash 复制代码
{
  "dependencies": {
    "vue": "*",
    "axios": "*",
    "pinia": "*",
    "element-plus": "*",
    "vue-router": "*",
    "@vueuse/core": "*",
    "@vueuse/head": "*",
    "dayjs": "*",
    "qs": "*",
    "vue-i18n": "*",
    "vue-toastification": "^2.0.0-rc.5",
    "lodash": "*"
  }
}

执行

bash 复制代码
npm install
3.进入mian.js配置刚刚安装的库
bash 复制代码
import { createApp } from "vue";
import App from "./App.vue";
import ElementPlus from "element-plus";
import "element-plus/dist/index.css";
import router from "./router"; // Vue Router
import { createPinia } from "pinia"; // 状态管理
import { createI18n } from "vue-i18n"; // 国际化
import Toast, { POSITION } from "vue-toastification"; // 消息通知
import "vue-toastification/dist/index.css";
import { createHead } from "@vueuse/head"; // SEO meta 管理
import dayjs from "dayjs"; // 处理日期
import qs from "qs"; // 处理 URL 参数
import _ from "lodash"; // 工具库

// ✅ 创建 Vue App
const app = createApp(App);

// ✅ 配置插件
app.use(ElementPlus); // UI 组件库
app.use(router); // 路由
app.use(createPinia()); // 状态管理
app.use(createI18n({ locale: "zh-CN", messages: {} })); // 国际化
app.use(createHead()); // SEO meta 管理
app.use(Toast, {
  position: POSITION.TOP_RIGHT, // 右上角显示
  timeout: 3000, // 3s 后自动消失
  transition: "Vue-Toastification__fade",
  maxToasts: 5, // 最多同时显示 5 条通知
  newestOnTop: true,
});

// ✅ 全局挂载工具库
app.config.globalProperties.$dayjs = dayjs;
app.config.globalProperties.$qs = qs;
app.config.globalProperties.$_ = _;

// ✅ 挂载 App
app.mount("#app");

二、Django

4.初始化Django项目
bash 复制代码
mkdir 项目根目录名称 && cd 项目根目录名称
python -m venv env  # 创建虚拟环境
# 指定 Python 版本创建虚拟环境
Python目录路径\Python\Python3.10.11\python.exe -m venv env  # Windows
env\Scripts\activate  # Windows 激活虚拟环境
pip install django  # 安装 Django
pip install djangorestframework
pip install djangorestframework-simplejwt	
pip install django-cors-headers	
pip install django-environ	
pip install Pillow	
pip install mysqlclient	
pip install drf-yasg	
django-admin startproject 项目名称 .  # 创建 Django 项目
或者使用requirements.txt
bash 复制代码
django
djangorestframework
djangorestframework-simplejwt
django-cors-headers
django-environ
Pillow
mysqlclient
drf-yasg

执行

bash 复制代码
pip install -r requirements.txt
5.创建Django的APP
bash 复制代码
python manage.py startapp 应用名称
6.注册刚刚创建的Django App和安装库后的配置
settings.py
bash 复制代码
INSTALLED_APPS = [
    "django.contrib.admin",
    "django.contrib.auth",
    "django.contrib.contenttypes",
    "django.contrib.sessions",
    "django.contrib.messages",
    "django.contrib.staticfiles",
    "rest_framework",  # ✅ Django REST Framework
    "corsheaders",  # ✅ 处理跨域
    "你创建的某APP",  # ✅ 你创建的某APP
]

# ✅ 配置 Django REST Framework (DRF)
REST_FRAMEWORK = {
    "DEFAULT_AUTHENTICATION_CLASSES": (
        "rest_framework_simplejwt.authentication.JWTAuthentication",  # ✅ 使用 JWT 认证
    ),
    "DEFAULT_PERMISSION_CLASSES": (
        "rest_framework.permissions.IsAuthenticated",  # ✅ 需要认证访问
    ),
}

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_ALLOWED_ORIGINS = [
    "http://localhost:5173",  # ✅ Vue 项目
    "http://127.0.0.1:5173",
]
7.运行Django Server
bash 复制代码
python manage.py runserver

三、Vue 和 Django 项目的目录结构

bash 复制代码
📂 项目根目录
├── 📂 frontend/   # Vue 项目
│   ├── 📂 src/
│   ├── 📂 public/
│   ├── vite.config.js
│   ├── package.json
│   ├── main.js
│   ├── router.js
│   ├── store.js
│   ├── components/
│   ├── views/
│   └── ...
├── 📂 backend/   # Django 项目
│   ├── 📂 myproject/
│   ├── 📂 myapp/
│   ├── 📂 users/
│   ├── manage.py
│   ├── requirements.txt
│   ├── settings.py
│   ├── urls.py
│   ├── wsgi.py
│   ├── asgi.py
│   ├── models.py
│   ├── views.py
│   ├── serializers.py
│   └── ...
相关推荐
心易行者6 小时前
10天!前端用coze,后端用Trae IDE+Claude Code从0开始构建到平台上线
前端
saadiya~7 小时前
ECharts 实时数据平滑更新实践(含 WebSocket 模拟)
前端·javascript·echarts
fruge7 小时前
前端三驾马车(HTML/CSS/JS)核心概念深度解析
前端·css·html
百锦再7 小时前
Vue Scoped样式混淆问题详解与解决方案
java·前端·javascript·数据库·vue.js·学习·.net
烛阴7 小时前
Lua 模块的完整入门指南
前端·lua
Sheldon一蓑烟雨任平生7 小时前
Vue3 表单输入绑定
vue.js·vue3·v-model·vue3 表单输入绑定·表单输入绑定·input和change区别·vue3 双向数据绑定
浪里行舟8 小时前
国产OCR双雄对决?PaddleOCR-VL与DeepSeek-OCR全面解析
前端·后端
znhy@1238 小时前
CSS易忘属性
前端·css
瓜瓜怪兽亚8 小时前
前端基础知识---Ajax
前端·javascript·ajax
AI智能研究院8 小时前
(四)从零学 React Props:数据传递 + 实战案例 + 避坑指南
前端·javascript·react.js