# study **Repository Path**: zzssheng/study ## Basic Information - **Project Name**: study - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-24 - **Last Updated**: 2026-09-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # zzs 学习项目 前后端分离的全栈学习项目: | 目录 | 说明 | 技术栈 | |------|------|--------| | `django_zzs/` | 后端 API 服务 | Django 5.2 + SimpleUI + SQLite | | `vue_zzs/` | 前端应用 | Vue 3 + Vite + TypeScript + Vue Router | ``` study/ ├── django_zzs/ # Django 后端 │ ├── config/ # 项目配置(settings / urls / wsgi / asgi) │ ├── manage.py │ ├── pyproject.toml # uv 依赖清单 │ ├── uv.lock │ └── db.sqlite3 # SQLite 数据库(已 gitignore) └── vue_zzs/ # Vue 前端 ├── src/ │ ├── assets/ # 静态资源 │ ├── components/ # 通用组件 │ ├── pages/ # 页面 │ ├── router/ # 路由 │ ├── App.vue │ └── main.ts ├── index.html ├── package.json └── vite.config.ts # 别名 @ -> src ``` --- ## 一、后端(django_zzs) ### 环境要求 - Python **3.11+** - [uv](https://docs.astral.sh/uv/)(Python 包管理器,替代 pip/venv) ### 安装依赖 ```bash cd django_zzs uv sync ``` 首次执行会自动创建 `.venv` 虚拟环境并安装 `pyproject.toml` 中声明的依赖。 > 如果后续新增了依赖,只需在 `pyproject.toml` 中修改并重新执行 `uv sync`,或直接执行 `uv add <包名>`。 ### 初始化数据库 首次运行前执行迁移,创建数据表: ```bash uv run python manage.py migrate ``` ### 创建超级管理员(用于登录后台) ```bash uv run python manage.py createsuperuser ``` 按提示输入用户名、邮箱、密码即可。 ### 启动开发服务器 ```bash uv run python manage.py runserver ``` - 默认地址: - 后台管理:(已集成 SimpleUI 美化) - 代码改动后会自动热重载,无需手动重启 ### 其他常用命令 ```bash uv run python manage.py makemigrations # 根据模型变更生成迁移文件 uv run python manage.py migrate # 应用迁移 uv run python manage.py startapp <名称> # 创建新 app(见下文) uv run python manage.py shell # 进入交互式 Python 环境 uv run python manage.py check # 检查配置是否有问题 ``` --- ## 二、前端(vue_zzs) ### 环境要求 - Node.js **22.18+ 或 24.12+**(见 `package.json` engines 字段) - [pnpm](https://pnpm.io/)(安装:`npm install -g pnpm`) ### 安装依赖 ```bash cd vue_zzs pnpm install ``` ### 启动开发服务器(热更新) ```bash pnpm dev ``` - 默认地址: - 修改代码自动刷新页面 ### 构建生产版本 ```bash pnpm build ``` 产物输出到 `dist/` 目录,构建前会自动执行类型检查。 ### 预览构建产物 ```bash pnpm preview ``` ### 其他常用命令 ```bash pnpm type-check # 仅做 TypeScript 类型检查 pnpm build-only # 仅构建,不执行类型检查 ``` ### 开发小贴士 - 路径别名:`@` 指向 `src/`,例如 `import App from '@/App.vue'` - 新增页面:在 `src/pages/` 下新建 `.vue` 文件,并在 `src/router/` 中注册路由 --- ## 三、前后端联调 开发时前端和后端分别运行: ```bash # 终端 1:后端 cd django_zzs uv run python manage.py runserver # 终端 2:前端 cd vue_zzs pnpm dev ``` 前端通过 API 请求后端时,需要在 `vite.config.ts` 中配置代理,避免跨域。示例(按需修改): ```ts // vue_zzs/vite.config.ts export default defineConfig({ plugins: [vue()], server: { proxy: { '/api': { target: 'http://127.0.0.1:8000', changeOrigin: true, }, }, }, }) ``` 之后前端即可用 `/api/...` 访问后端接口。 --- ## 四、如何添加新的 Django app 假设要新增一个名为 `blog` 的 app,步骤如下: ### 1. 创建 app 在 `django_zzs` 目录下执行: ```bash cd django_zzs uv run python manage.py startapp blog ``` 生成目录结构: ``` blog/ ├── migrations/ # 数据库迁移文件 ├── __init__.py ├── admin.py # 后台管理注册 ├── apps.py # app 配置 ├── models.py # 数据模型 ├── tests.py # 测试 └── views.py # 视图 ``` ### 2. 注册到 settings 打开 `config/settings.py`,在 `INSTALLED_APPS` 列表中加入 `'blog'`: ```python INSTALLED_APPS = [ 'simpleui', # ... Django 内置 app 'blog', # 新增 ] ``` ### 3. 定义数据模型 编辑 `blog/models.py`,例如: ```python from django.db import models class Post(models.Model): title = models.CharField(max_length=100) content = models.TextField() created_at = models.DateTimeField(auto_now_add=True) def __str__(self): return self.title ``` ### 4. 生成并应用迁移 ```bash uv run python manage.py makemigrations blog uv run python manage.py migrate ``` ### 5. 编写视图并配置路由 在 `blog/views.py` 中写视图,然后创建 `blog/urls.py`: ```python # blog/urls.py from django.urls import path from . import views urlpatterns = [ path('list/', views.post_list, name='post_list'), ] ``` 最后在 `config/urls.py` 中挂载: ```python from django.urls import include, path urlpatterns = [ path('admin/', admin.site.urls), path('blog/', include('blog.urls')), # 新增 ] ``` ### 6. 注册后台管理(可选) 编辑 `blog/admin.py`,让模型出现在 SimpleUI 后台: ```python from django.contrib import admin from .models import Post @admin.register(Post) class PostAdmin(admin.ModelAdmin): list_display = ('title', 'created_at') ``` ### 7. 验证 ```bash uv run python manage.py runserver ``` 访问 查看效果,或进入 管理数据。 --- ## 五、常见问题 | 问题 | 解决方法 | |------|----------| | `uv: 无法识别命令` | 安装 uv:`pip install uv` 或 `winget install astral-sh.uv` | | `pnpm: 无法识别命令` | `npm install -g pnpm` | | 端口被占用 | `runserver 8001` / `pnpm dev --port 5174` 换端口启动 | | 数据库文件被改动想重置 | 删除 `django_zzs/db.sqlite3` 后重新 `migrate` + `createsuperuser` | docker compose up -d --build docker compose exec backend python manage.py createsuperuser docker compose build docker images docker compose push docker compose up -d --pull always