# 泸州高中摄影社论坛 📷 一个基于 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 --- **泸州高中摄影社** - 分享精彩瞬间 📸