Complete project files including setup.sh

This commit is contained in:
2026-01-11 14:17:26 +08:00
commit 0bbe394cb5
29 changed files with 3060 additions and 0 deletions

136
README.md Normal file
View File

@@ -0,0 +1,136 @@
# 泸州高中摄影社论坛 📷
一个基于 Flask 的摄影社交平台,类似 Twitter/X专为泸州高中摄影社设计。
## ✨ 主要功能
- **用户注册与审核** - 注册时需上传学生证照片,管理员审核通过后才能使用
- **照片分享** - 发布摄影作品(照片+描述),支持评论互动
- **帖子审核** - 所有帖子需经管理员审核后才能公开展示
- **社交功能** - 关注用户,查看粉丝列表和关注列表
- **管理面板** - 管理员可审核用户注册和帖子发布
- **现代化UI** - 深色主题,渐变色,流畅动画
## 🚀 快速开始
### 1. 安装依赖
```bash
pip install -r requirements.txt
```
### 2. 运行应用
```bash
python app.py
```
应用将在 http://localhost:5000 启动。
### 3. 管理员设置
- 默认管理员账号:`admin`
- 默认密码:`adminlg`
- 首次登录后系统会要求修改密码。
- 登录后可在管理面板创建其他管理员。
## 📂 项目结构
```
Luntan/
├── app.py # Flask 应用主文件
├── models.py # 数据库模型
├── config.py # 配置文件
├── create_admin.py # 创建管理员脚本
├── requirements.txt # 依赖列表
├── routes/ # 路由蓝图
│ ├── auth.py # 认证路由
│ ├── posts.py # 帖子路由
│ ├── users.py # 用户路由
│ └── admin.py # 管理员路由
├── templates/ # HTML 模板
│ ├── base.html # 基础模板
│ ├── index.html # 首页
│ ├── register.html # 注册页
│ ├── login.html # 登录页
│ ├── profile.html # 个人主页
│ ├── create_post.html # 发帖页
│ ├── post_detail.html # 帖子详情
│ ├── admin/ # 管理员页面
│ └── errors/ # 错误页面
├── static/ # 静态文件
│ ├── css/
│ │ └── style.css # 样式文件
│ └── js/
│ └── main.js # JavaScript 文件
└── uploads/ # 上传文件目录
├── student_ids/ # 学生证照片
└── posts/ # 帖子图片
```
## 📖 使用说明
### 用户注册流程
1. 访问注册页面
2. 填写用户名、邮箱、密码
3. 上传学生证照片
4. 提交后等待管理员审核
5. 审核通过后即可登录
### 发布作品流程
1. 登录已审核账号
2. 点击"发帖"
3. 上传照片并添加描述
4. 提交后等待管理员审核
5. 审核通过后作品公开展示
### 管理员审核流程
1. 使用管理员账号登录
2. 访问管理面板
3. 审核待处理的用户注册和帖子
4. 批准或拒绝申请
## 🔧 配置
`config.py` 中可以配置:
- **SECRET_KEY** - 应用密钥(生产环境请更换)
- **DATABASE_URL** - 数据库连接地址
- **UPLOAD_FOLDER** - 文件上传目录
- **MAX_CONTENT_LENGTH** - 最大上传文件大小(默认 16MB
- **POSTS_PER_PAGE** - 每页显示的帖子数量
## 🎨 技术栈
- **后端**: Flask 3.0 + SQLAlchemy
- **前端**: HTML5 + CSS3 + JavaScript
- **数据库**: SQLite开发
- **认证**: Flask-Login
- **文件上传**: Werkzeug
## 🌟 特色设计
- **深色主题** - 护眼的暗色系设计
- **渐变色** - 现代化的配色方案
- **微动效** - 流畅的过渡动画和交互效果
- **响应式布局** - 适配各种屏幕尺寸
- **拖拽上传** - 支持拖拽上传图片
- **实时预览** - 上传前即可预览图片
## 📝 注意事项
- 首次运行前必须先创建管理员账号
- 上传的文件存储在 `uploads/` 目录
- 生产环境部署时请更换 SECRET_KEY
- 建议生产环境使用 PostgreSQL 或 MySQL
- 建议使用 nginx + gunicorn 部署
## 📄 许可证
MIT License
---
**泸州高中摄影社** - 分享精彩瞬间 📸