泸州高中摄影社论坛 📷

一个基于 Flask 的摄影社交平台,类似 Twitter/X专为泸州高中摄影社设计。

主要功能

  • 用户注册与审核 - 注册时需上传学生证照片,管理员审核通过后才能使用
  • 照片分享 - 发布摄影作品(照片+描述),支持评论互动
  • 帖子审核 - 所有帖子需经管理员审核后才能公开展示
  • 社交功能 - 关注用户,查看粉丝列表和关注列表
  • 管理面板 - 管理员可审核用户注册和帖子发布
  • 现代化UI - 深色主题,渐变色,流畅动画

🚀 快速开始

1. 安装依赖

pip install -r requirements.txt

2. 运行应用

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


泸州高中摄影社 - 分享精彩瞬间 📸

Description
No description provided
Readme 59 KiB
Languages
HTML 39.3%
Python 32%
CSS 20.1%
Shell 4.6%
JavaScript 4%