Skip to content

以 Django + DRF 作为后端,React 作为前端的类 X.com 的微博客网络社交平台实现 | 毕设参考

License

Notifications You must be signed in to change notification settings

Ljzd-PRO/connectClub

Repository files navigation

connectClub

Django React License

> 简体中文 < | English

📖 介绍

这是一个使用 Django + Django REST Framework (DRF) 插件作为后端,使用 React(使用 TypeScript)作为前端的X.com 的微博客网络社交平台实现。

✨ 特性

  • 主要元素:用户(User)、帖子(Post)、话题(Topic)、评论(Comment)、私信(Chat)
  • 拥有个性化的用户和话题推荐界面
  • 用户可个性化设置自己的个人主页
  • 拥有综合搜索功能
  • 拥有通知功能(点赞、评论、关注)
  • 注册界面密码复杂度要求
  • 帖子可包含文字、图片、视频,以及可关联话题
  • 帖子可设置可见性
  • 用户登录功能支持验证器方式(TOTP)的双重验证
  • 管理面板,管理员可管理帖子、用户、话题、评论、私信等
  • 现代化美丽的 UI 界面(使用 HeroUI 组件库)

📸 展示

Main Page
主页面 / Feed
Login
登录界面
User Page
用户主页
User Settings
用户设置
更多截图(点击展开)
Post
帖子视图
Topics
话题列表
Topic Selection
话题选择
Chat
私信聊天
Notification
通知中心
Notification Admin
管理员通知列表
TOTP
TOTP 双重验证
Avatar Upload
头像上传
Video Post
视频帖子预览
Admin
Django 管理面板示例

注:若在 GitHub 页面查看,图片将以缩略图显示;点击可在新标签中查看原始大小。

⌨️ 技术细节

🔧 安装

  1. 克隆仓库并进入项目目录:
    git clone https://github.com/Ljzd-PRO/connectClub --recursive
    cd connectclub
  2. 进入前端目录、安装前端依赖,并构建前端
    cd connect-club-site
    pnpm install
    pnpm build
  3. 返回项目目录,安装后端所需依赖(请确保已安装 Poetry):
    cd ..
    poetry install --no-root
  4. 后端收集静态文件(connect-club-site/dist):
    poetry run python manage.py collectstatic
    
  5. 后端应用数据库迁移(初始化数据库):
    poetry run python manage.py migrate
    
  6. 后端创建超级用户:
    poetry run python manage.py createsuperuser
    
  7. 启动开发服务器:
    poetry run python manage.py runserver
    
  • 下次您启动时,只需要运行:

    poetry run python manage.py runserver
    

🕹️ 运行演示站点

您也可以切换到 demo 分支,运行我们提供的演示站点,查看项目效果,该分支已经构建好了前端资源,且包含样例媒体文件和数据库文件。

(如果无法切换到 demo 分支,请确保您已存储当前更改,您可以直接暂时删除自动创建的 filesdb.sqlite3 然后重试)

git chekout demo
poetry install --no-root
poetry run python manage.py runserver

⚙ 后端配置

可通过编辑 connectClub/settings.py 来修改,或设置以 CONNECT_CLUB_ 开头的环境变量设置部分配置

主要配置

  • DATABASES: 数据库相关设置,支持更换其他数据库 - 参考文档
  • TIME_ZONE: 时区,可通过环境变量设置 - 参考文档
  • MEDIA_ROOT: 媒体资源(用户上传的图片视频文件)目录,可替换为其他存储方式,可通过环境变量设置 - 参考文档
  • CONNECT_CLUB_PAGE_SIZE: 后端API返回的数据分页大小
  • CONNECT_CLUB_USERS_CONFIG: JSON 格式,包含以下键,详细请参考 users/apps.py
    • nickname_maxlength: 用户昵称最大长度
    • location_maxlength: 用户位置信息最大长度
    • avatar_upload_to: 建议保持默认
    • banner_upload_to: 建议保持默认
  • CONNECT_CLUB_POSTS_CONFIG: JSON 格式,包含以下键,详细请参考 posts/apps.py
    • title_maxlength: 帖子标题最大长度
    • text_preview_length: 帖子预览文本最大长度
    • post_images_upload_to: 建议保持默认
    • post_videos_upload_to: 建议保持默认

🔑 管理

管理面板

如果已创建超级用户,页面左下角会显示进入管理面板的入口按钮。

或者直接访问: http://<your-domain>/admin/

Django manage.py 命令

使用 poetry run python manage.py <command> 来执行 Django 管理命令。

  • 生成 OpenAPI Schema(输出为 openapi.yml):
spectacular --color --file openapi.yml

支持

本项目仅为演示项目,没有后续更新维护的支持

About

以 Django + DRF 作为后端,React 作为前端的类 X.com 的微博客网络社交平台实现 | 毕设参考

Topics

Resources

License

Stars

Watchers

Forks

Languages