littlebot
Published on 2025-04-17 / 1 Visits
0

【源码】基于Flask框架的社区系统

项目简介

本项目基于Flask和Layui Fly Template构建社区系统。借助Flask - Admin实现简单的后台管理,采用MongoDB作为数据库。系统具备用户注册、登录、发帖、回帖等常见社区功能,同时支持微博OAuth登录、邮件发送、验证码验证以及图片上传。

项目的主要特性和功能

  1. 用户管理:支持注册、登录、邮箱激活与找回密码操作。
  2. 帖子管理:包含发帖、回帖、点赞、回复、采纳、删帖、结贴等功能。
  3. 后台管理:通过Flask - Admin构建管理界面,方便管理员管理社区。
  4. 搜索功能:集成Whoosh搜索引擎,可进行全文搜索。
  5. 缓存机制:使用Redis作为缓存,提升系统性能。
  6. 图片上传:支持上传图片到服务器或图床。
  7. 社交账号登录:支持微博OAuth登录。

安装使用步骤

下载与安装

  1. 下载源码:通过git clone https://gitee.com/981764793/PyFly命令复制项目代码。
  2. 安装数据库:安装MongoDB,并在config.py文件中修改MongoDB的连接信息。
  3. 配置邮箱:在config.py文件中修改SMTP邮箱账号密码,用于用户注册验证。
  4. 安装依赖:执行pip install -r requirements.txt安装项目所需依赖。
  5. 运行项目:使用python manager.py runserver命令启动项目。

使用说明

  • 首次运行项目时,会自动向MongoDB中添加默认的管理员账号和配置项。
  • 后台管理的访问地址为http://127.0.0.1:5000/admin
  • 可自行对模板进行修改扩展,将其用作信息分类网站、CMS或博客。
  • 图片上传有保存到后端或图床两种方式,默认保存到服务器。

模板开发

  1. 全局过滤器:mongo_date_str用于格式化MongoDB的日期字段。
  2. 全局函数:
    • get_page(collection_name, pn = 1, size = 10, sort_by = None, filter1 = None):实现分页查询。
    • get_list(collection_name, sort_by = None, filter1 = None, size = None):用于列表查询。
    • find_one(collection_name, filter1 = None):获取单条记录。
    • date_cal(d1, num, is_add = True):进行日期计算。

待办事项

  • 完善社交账号登录(微博OAuth)功能。
  • 后续规划其他未确定的功能。

截图预览

首页1 首页2 发帖 回帖 个人设置 用户主页

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】