这是一个使用 Django + Django REST Framework (DRF) 插件作为后端,使用 React(使用 TypeScript)作为前端的类 X.com 的微博客网络社交平台实现。
- 主要元素:用户(User)、帖子(Post)、话题(Topic)、评论(Comment)、私信(Chat)
- 拥有个性化的用户和话题推荐界面
- 用户可个性化设置自己的个人主页
- 拥有综合搜索功能
- 拥有通知功能(点赞、评论、关注)
- 注册界面密码复杂度要求
- 帖子可包含文字、图片、视频,以及可关联话题
- 帖子可设置可见性
- 用户登录功能支持验证器方式(TOTP)的双重验证
- 带管理面板,管理员可管理帖子、用户、话题、评论、私信等
- 现代化美丽的 UI 界面(使用 HeroUI 组件库)
主页面 / Feed
|
登录界面
|
用户主页
|
用户设置
|
注:若在 GitHub 页面查看,图片将以缩略图显示;点击可在新标签中查看原始大小。
- 后端通过 Django REST Framework (DRF) 实现 RESTful API(增删改查等)
- 通过后端的 drf-spectacular 和前端的 openapi-typescript 以 OpenAPI 协议协调 API 接口定义,使开发维护和调试更便利
- 克隆仓库并进入项目目录:
git clone https://github.com/Ljzd-PRO/connectClub --recursive
cd connectclub - 进入前端目录、安装前端依赖,并构建前端
cd connect-club-sitepnpm install
pnpm build
- 返回项目目录,安装后端所需依赖(请确保已安装 Poetry):
cd ..poetry install --no-root
- 后端收集静态文件(
connect-club-site/dist):poetry run python manage.py collectstatic - 后端应用数据库迁移(初始化数据库):
poetry run python manage.py migrate - 后端创建超级用户:
poetry run python manage.py createsuperuser - 启动开发服务器:
poetry run python manage.py runserver
-
下次您启动时,只需要运行:
poetry run python manage.py runserver
您也可以切换到 demo 分支,运行我们提供的演示站点,查看项目效果,该分支已经构建好了前端资源,且包含样例媒体文件和数据库文件。
(如果无法切换到 demo 分支,请确保您已存储当前更改,您可以直接暂时删除自动创建的 files 和 db.sqlite3 然后重试)
git chekout demopoetry install --no-rootpoetry 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.pynickname_maxlength: 用户昵称最大长度location_maxlength: 用户位置信息最大长度avatar_upload_to: 建议保持默认banner_upload_to: 建议保持默认
CONNECT_CLUB_POSTS_CONFIG: JSON 格式,包含以下键,详细请参考posts/apps.pytitle_maxlength: 帖子标题最大长度text_preview_length: 帖子预览文本最大长度post_images_upload_to: 建议保持默认post_videos_upload_to: 建议保持默认
如果已创建超级用户,页面左下角会显示进入管理面板的入口按钮。
或者直接访问: http://<your-domain>/admin/
使用 poetry run python manage.py <command> 来执行 Django 管理命令。
- 生成 OpenAPI Schema(输出为
openapi.yml):
spectacular --color --file openapi.yml
本项目仅为演示项目,没有后续更新维护的支持












