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

5.5 KiB
Executable File
Raw Blame History

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. 克隆项目

git clone <repository-url>
cd <项目目录>

2. 创建虚拟环境

python -m venv venv
source venv/bin/activate  # Linux/Mac
# 或
venv\Scripts\activate     # Windows

3. 安装依赖

pip install -r requirements.txt

4. 配置环境变量

cp .env.example .env
# 编辑 .env设置 SECRET_KEY、DEBUG 等

5. 运行数据库迁移

python manage.py migrate

6. 导入示例数据

python manage.py import_example_images

example_img/ 目录下的图片批量导入数据库,同时创建示例分类和关于页面。

7. 创建超级用户

python manage.py createsuperuser

8. 运行开发服务器

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>/

  • 左侧:大图展示 + 返回按钮
  • 右侧:标题、描述、分类信息
  • 底部:评论列表及发布评论(需登录)
  • 按关键词搜索作品标题/描述

分类页 /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.htmlTailwind CSS
  • 自定义 CSSgallery/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 文件了解详情。

联系信息

更新日志

v1.1.0 (2026-02-25)

  • 新增评论系统(文字 + 图片,需登录)
  • 新增关键词搜索页
  • 新增分类筛选页
  • 新增用户登录/登出
  • 移除 grid_size 静态字段,改用 get_dynamic_grid_class() 根据宽高比动态布局
  • 接入 python-decouple 管理环境变量

v1.0.0 (2026-02-05)

  • 初始版本发布
  • 瀑布流网格、作品详情、关于页面
  • 响应式深色主题
  • Django Admin 后台