Files
yitao-ren-gallery/README.md
Cafw 02cc29fcfd fix: clean up requirements and import command, update README
- requirements.txt: remove unused packages (django-imagekit, django-taggit, python-slugify), keep 4 actual deps
- import_example_images.py: remove grid_size variable and param to fix TypeError
- README.md: correct repo dir name, add comment/search/category/login docs, fix tech stack and project structure, update data model (remove grid_size, add Comment), add v1.1.0 changelog

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-25 18:11:01 +08:00

223 lines
5.5 KiB
Markdown
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Yitao-Ren Gallery
一个深色主题的现代摄影作品展示网站,使用 Django 和 Tailwind CSS 构建。
## 功能特点
- 深色主题设计,极简现代风格
- 完全响应式设计,适配移动端
- 动态网格布局:根据图片宽高比自动调整占位(宽图横跨 2 列,竖图占 2 行)
- 图片懒加载,提升性能
- 作品详情页左右分栏布局,支持评论(文字/图片)
- 关键词搜索、分类筛选
- 用户登录/登出
- Django Admin 后台管理
## 技术栈
- **后端**: Django 4.2
- **前端**: Tailwind CSS 3.3
- **数据库**: SQLite开发/ PostgreSQL生产
- **图片处理**: Pillow自动生成缩略图
- **配置管理**: python-decouple`.env` 环境变量)
- **文件清理**: django-cleanup自动删除孤立媒体文件
- **字体**: Noto Sans SC中文Playfair Display英文标题
## 安装步骤
### 1. 克隆项目
```bash
git clone <repository-url>
cd <项目目录>
```
### 2. 创建虚拟环境
```bash
python -m venv venv
source venv/bin/activate # Linux/Mac
# 或
venv\Scripts\activate # Windows
```
### 3. 安装依赖
```bash
pip install -r requirements.txt
```
### 4. 配置环境变量
```bash
cp .env.example .env
# 编辑 .env设置 SECRET_KEY、DEBUG 等
```
### 5. 运行数据库迁移
```bash
python manage.py migrate
```
### 6. 导入示例数据
```bash
python manage.py import_example_images
```
`example_img/` 目录下的图片批量导入数据库,同时创建示例分类和关于页面。
### 7. 创建超级用户
```bash
python manage.py createsuperuser
```
### 8. 运行开发服务器
```bash
python manage.py runserver
```
访问 http://localhost:8000 查看网站http://localhost:8000/admin 进入管理后台。
## 项目结构
```
rytgallery/
├── rytgallery/ # Django 项目配置
│ ├── settings.py
│ └── urls.py
├── gallery/ # 画廊应用
│ ├── models.py # 数据模型
│ ├── views.py # 视图函数
│ ├── urls.py # URL 路由
│ ├── admin.py # Admin 后台注册
│ ├── templates/ # 模板文件
│ ├── static/ # 静态文件
│ └── management/
│ └── commands/
│ └── import_example_images.py
├── example_img/ # 示例图片(导入用)
├── media/ # 上传的媒体文件
├── .env.example
└── requirements.txt
```
## 数据模型
### Category分类
- 名称、slugURL 标识)
- 创建/更新时间
### Artwork作品
- 标题、描述、slug
- 图片、缩略图(自动生成,约 90 万像素)
- 分类(外键,可选)
- 排序序号、浏览次数
- 创建/更新时间
- 网格布局由 `get_dynamic_grid_class()` 根据缩略图宽高比动态计算
### About关于
- 标题、内容、图片
- 全站仅保留一条记录
### Comment评论
- 关联作品(外键)
- 发布用户(外键,关联 Django 内置 User
- 评论文字、评论图片(均可选)
- 是否有效(软删除标记)
- 创建/更新时间
## 页面说明
### 首页 `/`
- 动态网格展示所有作品,图片悬停效果,懒加载
### 作品详情页 `/gallery/<slug>/`
- 左侧:大图展示 + 返回按钮
- 右侧:标题、描述、分类信息
- 底部:评论列表及发布评论(需登录)
### 搜索页 `/search/`
- 按关键词搜索作品标题/描述
### 分类页 `/category/<slug>/`
- 展示指定分类下的所有作品
### 关于页 `/about/`
- 画廊介绍信息
### 登录 `/login/` · 登出 `/logout/`
- 标准 Django 认证,评论功能需登录
## 设计规范
### 颜色方案
- 背景: `#0a0a0a`(深黑色)
- 文字: `#f5f5f5`(浅灰色)
- 强调色: `#3b82f6`(蓝色)
- 卡片背景: `#1e293b`(深蓝色)
### 字体
- 英文标题: Playfair Display
- 中文正文: Noto Sans SC
## 开发说明
### 添加新作品
1. 登录管理后台 `/admin`
2. 进入 "Artworks" → "Add Artwork"
3. 上传图片,填写标题/描述/分类后保存
4. 系统自动生成缩略图并计算动态网格布局
### 自定义样式
- 全局样式:`gallery/templates/gallery/base.html`Tailwind CSS
- 自定义 CSS`gallery/static/gallery/css/custom.css`
- 懒加载脚本:`gallery/static/gallery/js/lazy-load.js`
### 部署建议
```
DEBUG=False
ALLOWED_HOSTS=your-domain.com
DATABASE_URL=postgres://...
```
- 使用 PostgreSQL 代替 SQLite
- 配置 Nginx + Gunicorn 服务静态/媒体文件
- 启用 HTTPS 及 CSRF 安全选项
## 贡献指南
1. Fork 项目
2. 创建功能分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 创建 Pull Request
## 许可证
本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。
## 联系信息
- 项目维护者: flffake@lizexua.com
## 更新日志
### v1.1.0 (2026-02-25)
- 新增评论系统(文字 + 图片,需登录)
- 新增关键词搜索页
- 新增分类筛选页
- 新增用户登录/登出
- 移除 `grid_size` 静态字段,改用 `get_dynamic_grid_class()` 根据宽高比动态布局
- 接入 python-decouple 管理环境变量
### v1.0.0 (2026-02-05)
- 初始版本发布
- 瀑布流网格、作品详情、关于页面
- 响应式深色主题
- Django Admin 后台