# school-circle **Repository Path**: youys/school-circle ## Basic Information - **Project Name**: school-circle - **Description**: 这是一个校园圈小程序,后端采用Django,前端使用原生微信小程序,主要内容是论坛、圈子、二手交易的功能。 特色:使用jwt技术进行用户认证,使用openid自动注册用户 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2025-06-08 - **Last Updated**: 2025-06-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 更新说明 更新日期:2025-03-09,今天有读者发微信才发现,之前的版本上传错了,之前的版本是不带校园圈子功能的版本,今天重新上传了一下,并且更新了一下数据库的设置,直接使用sqlite3,不用再额外安装mysql数据库,其他地方没有做改动 # 有项目需求可以联系作者,V:sic096,请备注来意 # 一、项目下载和启动 ## 1.下载方式 下载方式一:通过git下载 ```git git clone https://gitee.com/sic096/school-circle.git ``` 下载方式二:使用zip下载 ![image-20240723100236334](school-circle说明.assets/image-20240723100236334.png) 下载完成后将项目内容解压到本地 ## 2.虚拟环境 使用pycharm打开graduation文件夹,这个文件夹是后端内容,v-graduation是前端内容 如果pycharm有提示是否信任该项目,要点信任,否则部分功能会受限 打开pycharm的设置--项目设置--python解释器,为项目新建一个本地解释器 ![image-20240723100935654](school-circle说明.assets/image-20240723100935654.png) 项目所需要的依赖软件都写在requirements.txt里面 打开pycharm的终端,注意查看终端路径,是不是我们刚刚新建的虚拟环境目录 在终端环境下输入以下代码安装依赖 ```bash pip install -r .\requirements.txt ``` ## 3.数据库设置 打开graduation目录下的setting文件,在里面找到DATABASES的设置,新建一个名为fourm1的数据库,并检查数据库用户名和密码和自己的是否一致 ```python DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'fourm1', 'USER': 'root', 'PASSWORD': '123456', 'HOST': '127.0.0.1', 'PORT': '3306', } } ``` 上述数据库设置内容为使用mysql数据库的设置内容,mysql需要手动安装,较为麻烦,此次版本更新,将数据库设置为sqlite3,sqlite3为本地小型数据库,适合小型项目,重点是不用安装!!! 在项目的setting文件中修改内容: ```python DATABASES = { # 使用sqlite3,本地开发使用,无需额外安装配置mysql 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': BASE_DIR / 'db.sqlite3' } } ``` 然后在终端下分别执行下面两条命令执行数据库迁移文件: ```bash python manage.py makemigrations python manage.py migrate ``` 如果没有报错就是创建成功了 ## 4.启动Django项目 上述操作完成之后,在终端下执行以下命令运行项目 ```bash python manage.py runserver 127.0.0.1:8080 ``` ![image-20240723101704799](school-circle说明.assets/image-20240723101704799.png) 如果有上述截图内容,证明项目启动成功,注意,本项目的启动端口是在8080端口 也可以使用pycharm的Django服务来启动项目 pycharm右上角绿色启动按钮旁边的当前文件--编辑配置--添加新的运行配置 ![image-20240723101840545](school-circle说明.assets/image-20240723101840545.png) ![image-20240723101911203](school-circle说明.assets/image-20240723101911203.png) 选择Django服务器 ![image-20240723101932887](school-circle说明.assets/image-20240723101932887.png) 端口改为8080端口 ![image-20240723102005457](school-circle说明.assets/image-20240723102005457.png) 点击确定添加成功,之后直接点击绿色的启动按钮即可启动项目 ## 5.前端微信小程序部分启动 使用微信开发者工具打开项目,项目的appid要填自己的小程序appid,因为本项目有获取用户openid部分内容,不建议使用测试号,建议自己注册一个微信小程序再来体验 勾选不使用云服务 ![image-20240723102419797](school-circle说明.assets/image-20240723102419797.png) 选择信任项目 ![image-20240723102443361](school-circle说明.assets/image-20240723102443361.png) ## 6.修改AppSecret 因为本项目是通过获取用户的openid作为唯一凭证自动注册用户信息,所以还需要填写自己小程序的AppSecret(小程序秘钥) 打开微信公众平台,并登录自己的小程序 https://mp.weixin.qq.com/ 登录完成之后,在侧边栏中找到开发管理,点进去之后即可设置自己的AppSecret ![image-20240723102954631](school-circle说明.assets/image-20240723102954631.png) 按照提示要求生成之后保管好自己的AppSecret 打开Django项目的api目录下的views.py文件,在第53行的url地址按照如下规则进行修改: ```python url = 'https://api.weixin.qq.com/sns/jscode2session?appid=自己小程序的appid&secret=自己的小程序秘钥&grant_type=authorization_code&js_code=' + code ``` 然后把微信小程序的appid也要对应修改过来: ![image-20250309222736300](README.assets/image-20250309222736300.png) ## 7.启动项目 首先启动Django项目 然后在微信开发者工具中启动前端项目,如果启动过程中有遇到问题,重复点击编译按钮即可 启动后的项目:(因为我本身数据库里面有数据,所以会有内容) ![image-20240723105249151](school-circle说明.assets/image-20240723105249151.png) ## 8.创建超级管理员 在pycharm的终端目录下,执行以下命令创建超级管理员 ```b python manage.py createsuperuser ``` 按照提示输入用户名、邮箱(可不填)、密码、确认密码即可完成创建 # 二、项目说明 ## 1.公告部分 打开Django自带的后台,并登录刚刚创建的超级管理员账户 在这里可以完成对系统所有信息的增删改查 ![image-20240723122801065](school-circle说明.assets/image-20240723122801065.png) 点击轮播图,右边增加按钮即可新增首页banner界面 ![image-20240723122839202](school-circle说明.assets/image-20240723122839202.png) 轮播图具体内容前端界面: ![image-20240723122907214](school-circle说明.assets/image-20240723122907214.png) ## 2.帖子部分 ### 2.1 帖子列表 首页帖子广场,监测到用户下拉到底后,会自动向后端请求下一页的数据,也就是“下拉翻页”的功能 ![image-20240723123135244](school-circle说明.assets/image-20240723123135244.png) 用户点击帖子内容区域即可进入查看帖子详情,点击用户部分内容会进入到用户的主页 ### 2.2 帖子详情 在帖子详情部分,用户可以查看帖子的全部内容,以及对帖子进行点赞、评论等内容,评论只有一级评论,没有二级评论 ![image-20240723123330274](school-circle说明.assets/image-20240723123330274.png) 在帖子详情部分,点击用户头像也可以进入到用户主页 ### 2.3 帖子的发布 用户点击tabbar中的发布按钮,即可发布帖子,图片数量0-9张 ![image-20240723123439763](school-circle说明.assets/image-20240723123439763.png) ### 2.4 帖子的删除 用户可以点击我的--个人主页界面来到自己的用户界面,当前登录用户访问自己主页的时候,帖子的列表部分才会有删除按钮 ![image-20240723123529524](school-circle说明.assets/image-20240723123529524.png) 访问他人主页: ![image-20240723123727757](school-circle说明.assets/image-20240723123727757.png) ### 2.5 帖子的搜索 在首页部分,顶部有个帖子的搜索栏,输入内容后即可搜索帖子内容 ![image-20240723123825216](school-circle说明.assets/image-20240723123825216.png) 搜索结果: ![image-20240723123839575](school-circle说明.assets/image-20240723123839575.png) ## 3.圈子部分 ### 3.1 圈子列表 点击tabbar的圈子,可以进入到圈子界面,用户可以创建不同的圈子,但是每个用户最多创建三个圈子 ![image-20240723124043523](school-circle说明.assets/image-20240723124043523.png) ### 3.2圈子详情 点击圈子可以进入到圈子详情部分 ![image-20240723124157034](school-circle说明.assets/image-20240723124157034.png) ### 3.3 加入圈子 用户进入到圈子详情部分后,可以点击申请加入按钮发起申请,圈子的创建者可以在我的--我的圈子--圈子列表进入查看发起申请的用户 ![image-20240723124334258](school-circle说明.assets/image-20240723124334258.png) ### 3.4 圈子中发布帖子 用户在圈子详情中,点击发布帖子按钮,可以实现发布圈子内的帖子,同时该用户拥有对该帖子的删除功能。 ![image-20240723124455638](school-circle说明.assets/image-20240723124455638.png) ### 3.5 退出圈子 用户在已加入圈子的详情界面中,可以点击退出圈子按钮直接退出圈子,无需管理员审核 ## 4.二手交易 ### 4.1 商品列表 用户点击首页的二手交易栏目可以进入到二手商品列表界面 ![image-20240723124641074](school-circle说明.assets/image-20240723124641074.png) 点击底部的发布按钮可以发布二手商品 ### 4.2 商品详情与购买 用户点击商品,会进去到商品详情界面,如果当前登录的用户是该商品的发布者,会出现删除按钮,否则是购买按钮 ![image-20240723124743332](school-circle说明.assets/image-20240723124743332.png) ### 4.3 商品的查看与发货 用户点击我的--订单列表,可以查看自己购买的和已经被购买的商品,如果自己发布的商品被别人购买了,自己点击该订单进入到订单详情界面,会出现点击发货的按钮,当发布者完成发货的操作后,该按钮会变成订单已完成的样式 ![image-20240723124916307](school-circle说明.assets/image-20240723124916307.png) ## 5.周边商家 用户点击首页的周边商家栏目,可以进入到商家列表界面,在该界面可以查看学校周边的商家地址以及联系方式 ![image-20240723125012680](school-circle说明.assets/image-20240723125012680.png) ## 6.消息界面 在tabbar的消息界面,用户可以查看其他用户给自己的帖子的点赞评论信息,并且点击消息内容可以跳转到帖子详情部分 ![image-20240723125110144](school-circle说明.assets/image-20240723125110144.png) ## 7. 用户 ### 7.1 创建用户 当用户打开小程序后,会自动判断当前用户的openid是否存在于数据库中,如果没有的话,则使用默认信息自动创建用户,这样免去了用户注册登录部分的内容,优化了用户体验 ### 7.2 用户信息的修改 用户可以在我的界面,点击自己头像或者昵称进入信息修改界面,而且自动创建用户的昵称是“点击修改用户信息”,这样也是在提醒用户如何进入到用户信息修改界面 ![image-20240723125421377](school-circle说明.assets/image-20240723125421377.png) ![image-20240723125427917](school-circle说明.assets/image-20240723125427917.png) ### 7.3 关注和粉丝 用户在我的界面中,可以查看自己的关注和粉丝界面 ![image-20240723125500529](school-circle说明.assets/image-20240723125500529.png) ![image-20240723125512020](school-circle说明.assets/image-20240723125512020.png) 在关注界面,用户可以点击取消关注按钮取消对用户的关注,同时也可以在自己关注用户的主页界面点击取消关注 ![image-20240723125556367](school-circle说明.assets/image-20240723125556367.png) 用户同样也是在用户的主页部分完成对用户的关注 ![image-20240723125620118](school-circle说明.assets/image-20240723125620118.png)