# django-vue-admin **Repository Path**: jimdeng891/django-vue-admin ## Basic Information - **Project Name**: django-vue-admin - **Description**: django-vue-admin通用后台管理系统 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-21 - **Last Updated**: 2025-08-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 简介 基于RBAC模型权限控制的中小型应用的基础开发平台,前后端分离,后端采用django+django-rest-framework,前端采用vue+ElementUI。 JWT认证,可使用simple_history实现审计功能,支持swagger 内置模块有组织机构\用户\角色\岗位\数据字典\文件库\定时任务\工作流(已上传大部分代码, 后端代码位于apps/wf) 支持功能权限(控权到每个接口)和简单的数据权限(全部、本级及以下、同级及以下、本人等) ----- ## 前置准备 ```angular2html Python >= 3.10.0 nodejs >= 16.0 Mysql >= 8.0 (可选,默认数据库sqlite3,支持5.7+,推荐8.0版本) Redis (可选,最新版) ``` ----- ## 开发环境启动(以下是在Mac下操作步骤) ### django后端 ```bash # 切换到后端根目录 cd backend # 安装 UV,以安装可跳过 # 支持 Windows/macOS/Linux curl -LsSf https://astral.sh/uv/install.sh | sh # 或通过 pip(如果已有 Python 环境) pip install uv # 建立虚拟环境(默认在 .venv 目录) uv venv # 激活虚拟环境 # Windows (PowerShell) .venv\Scripts\Activate.ps1 # Windows (CMD) .venv\Scripts\activate.bat # macOS/Linux source .venv/bin/activate # 安装依赖(会根据 pyproject.toml 解析并安装) uv sync # 复制conf文件夹下的env.example.py为env.py,根据需要修改里面的数据库连接及DEBUG参数 # macOS/Linux cp .conf/env.example.py .conf/env.py # Windows cp conf\env.example.py conf\env.py # 生产数据库迁移文件 python manage.py makemigrations # 同步数据库 python manage.py migrate # 导入初始数据 python manage.py loaddata db.json # 运行服务 python manage.py runserver 9099 ``` ### vue前端 ```bash # 切换到前段根目录 cd frontend # 安装依赖包 npm install --registry=https://registry.npmmirror.com # 运行服务 npm run dev ``` ----- ## 正式环境部署 可以前后端分开部署, nginx代理。也可打包之后将前端dist替换server/dist, 然后执行collectstatic 使用gunicorn启动: 进入虚拟环境执行 gunicorn -w 5 -b 0.0.0.0:2251 server.wsgi 如果需要webscoket还需要配置daphne启动,可使用supervisor监控 Nginx配置可参考如下: ``` server { listen 2250; client_max_body_size 1024m; location /media/ { alias /home/work/django-vue-admin/backend/media/; limit_rate 800k; } location / { alias /home/django-vue-admin/backend/dist/; index index.html; } location ~ ^/(api|django)/ { set $CSRFTOKEN ""; if ($http_cookie ~* "CSRFTOKEN=(.+?)(?=;|$)") { set $CSRFTOKEN "$1"; } proxy_set_header X-CSRFToken $CSRFTOKEN; proxy_pass http://localhost:2251; proxy_pass_header Authorization; proxy_pass_header WWW-Authenticate; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location /ws/ { proxy_pass http://localhost:2252; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $server_name; } } ```