基於Django的論壇系統項目

ForumSystem

一個論

github下載地址:https://github.com/likunhong01/ForumSystem 能點個星星最好了
卡的話csdn下載:https://download.csdn.net/download/likunkun__/11369059

一個論壇系統,一個Django論壇項目
使用:pycharm打開項目後,選擇好運行環境,然後在命令行創建數據庫(記得把Django目錄下的settings裏的數據庫配置代碼改成你自己數據庫的信息)(下面兩條語句),然後運行就行了

python manage.py makemigrations
python manage.py migrate

展示

用戶端

登錄
image
主頁

全部帖子

發帖

管理員端

帖子管理
image
公告管理
image
板塊(分類)管理
image

功能

用戶端功能

  • 註冊:用戶在註冊界面可以提交註冊,暫不支持手機短信驗證,直接註冊。
  • 登錄:已註冊的用戶可以通過正確的用戶名和密碼登錄。
  • 歡迎:主頁的導航欄會顯示用戶名並且歡迎。
  • 查看公告:查看管理員發出的公告。
  • 查看指南:顯示在主頁的指南。
  • 推薦帖子:每個帖子可以選擇推薦在首頁顯示。
  • 查看類別:可以看到論壇裏帖子所有的類別,點擊可以查看對應下的帖子。
  • 查看全部帖子:按照時間順序,查看所有帖子。
  • 帖子篩選:可以根據帖子分類、回覆量、發佈時間進行組合篩選。
  • 帖子搜索:根據輸入關鍵字查詢相關帖子。
  • 發帖:普通用戶可以發帖。
  • 查看帖子詳細:可以看到帖子的發佈時間,作者,類別,標題,簡介,詳細內容,所有留言信息。
  • 留言:可以在帖子下面發表文字或者圖片留言(評論),暫不支持回覆評論。

系統說明

數據庫

項目採用mysql進行存儲,我使用的是mysql 8.0.16。表之間不採用任何外鍵關聯,邏輯的管理都在控制層完成。每個表的id都由Django自動創建,也同時作爲主鍵。

表與字段

用戶表:User
字段名稱 字段類型 字段說明
id int 編號,自增,主鍵
uid vchar(16) 用戶名,唯一
password vchar(16) 密碼
create_time Date 創建日期
帖子表:Topic
字段名稱 字段類型 字段說明
id int 編號,自增,主鍵
t_uid vchar(16) 帖子作者
t_kind vchar(32) 帖子類型
create_time Date 帖子發佈日期
t_photo vchar(128) 帖子主頁圖,允許爲空
t_content vchar(3000) 帖子內容
t_title vchar(64) 帖子標題
t_introduce vchar(256) 帖子介紹
recommend boolean 是否推薦到主頁,默認false
回覆表:Reply
字段名稱 字段類型 字段說明
id int 編號,自增,主鍵
r_tid vchar(16) 回覆的帖子
r_uid vchar(16) 發表回覆的人
r_time Date 回覆時間
r_photo vchar(128) 回覆圖片,允許爲空
r_content vchar(256) 回覆內容
分類表:Kind
字段名稱 字段類型 字段說明
id int 編號,自增,主鍵
k_name vchar(16) 分類名稱
公告表:Announcement
字段名稱 字段類型 字段說明
id int 編號,自增,主鍵
a_title vchar(64) 公告名稱
a_content vchar(3000) 公告內容,允許爲空

數據庫代碼

數據庫代碼在模型(models)層:參見/ForumSystem/app01/models.py

用戶端

用戶端前端

  • 主頁:
    • 顯示公告:模板和數據渲染生成
    • 顯示指南:html固定內容
    • 顯示導航欄
      • 登陸後顯示:主頁、發帖、看帖、歡迎、退出
      • 未登錄顯示:主頁、發帖(點擊會跳轉到登錄)、看帖、登錄。
    • 顯示推薦帖子:模板和數據渲染生成
    • 顯示全部帖子按鈕:頁面固定
    • 底部欄:顯示名稱和導航欄
  • 登錄&註冊頁面:
    • 一個輸入框:分爲用戶名和密碼
    • 兩個按鈕(登錄/註冊)
    • 通過ajax發送登錄或者註冊請求
  • 全部帖子頁面:
    • 論壇名稱(左上角):固定顯示
    • 搜索框:固定,form表單post提交
    • 導航欄:同上
    • 組合篩選欄
      • 分類篩選:模板和數據渲染得到所有分類顯示
      • 回覆數量篩選:固定
      • 發佈時間篩選:固定
    • 顯示全部帖子:模板和數據渲染獲取
  • 帖子詳情頁面:模板和數據渲染獲取
    • 論壇名稱:同上
    • 導航欄:同上
    • 帖子主圖
    • 帖子標題和詳細內容
    • 帖子作者、發佈時間、分類
    • 發表留言欄:form表單,post提交
    • 顯示所有留言:模板和數據渲染獲取
  • 公告詳情頁面:
    • 公告標題
    • 公告內容
  • 發佈帖子頁面:
    • 一個大form表單,包括帖子的標題、簡介、內容、封面圖、類別(下拉選擇)。
  • 修改密碼頁面:
    • 用戶名框(只顯示,不可改)
    • 原密碼框
    • 新密碼框
    • 確認新密碼框
    • 提交(成功後返回主頁)、取消(返回主頁)按鈕

用戶端接口

主頁
  • url:http://127.0.0.1:8000/home/
  • GET請求
    • 參數:無
    • 返回值:10個最新公告列表,所有推薦貼列表,渲染好的頁面
所有帖子
  • url:http://127.0.0.1:8000/all-0-0-0
  • GET請求
    • url說明:後3個0指組合篩選不進行篩選
    • 參數:無,也可以說是all後面的3個數字(kid, reply_limit, time_limit)
    • 返回值:根據3個參數選擇後的帖子列表
  • POST請求:
    • 參數
      • keys:搜索關鍵字
    • 返回值:根據關鍵字搜索到的帖子列表
登錄、註冊
  • url:http://127.0.0.1:8000/login/
  • GET請求:
    • 參數:無
    • 返回值:登錄頁面
  • POST請求:
    • 參數:
      • type:login 或者 register
      • uid:用戶名
      • pwd:密碼
    • 返回值:
      • msg:信息
      • status:狀態,成功與否
發佈帖子
  • url:http://127.0.0.1:8000/publish/
  • GET請求:
    • 參數:無
    • 返回值:發佈帖子頁面
  • POST請求:
    • 參數:
      • t_title:標題
      • t_introduce:介紹
      • t_content:內容
      • t_kind:類別
      • t_photo:主圖
    • 返回值:
      • 成功後重定向到單個帖子頁面
單個帖子
  • url:http://127.0.0.1:8000/single/1/
  • GET請求:
    • url說明:1就是tid
    • 參數:tid
    • 返回值:帖子相關所有信息,渲染成單個帖子詳情頁面
  • POST請求:主要用於評論的發表和刪除
    • 參數:
      • type:類型,刪除評論還是發表評論
      • r_content:評論內容
      • r_photo:評論圖片
      • r_id:回覆id,刪除已有回覆纔用到
    • 返回值:
      • msg:信息
      • status:狀態,成功與否
修改密碼
  • url:http://127.0.0.1:8000/edit-pwd/
  • GET請求:
    • 參數:無
    • 返回值:修改密碼頁面
  • POST請求:
    • 參數:
      • old_pwd:舊密碼
      • new_pwd1:新密碼
      • new_pwd2:確認新密碼
    • 返回值:
      • 成功後重定向到主頁

管理員端

管理員前端

  • 管理員登錄:
    • 一個輸入框:分爲用戶名和密碼
    • 兩個按鈕(登錄/取消)
    • 一個form表單,提交數據
  • 帖子管理:
    • 導航欄:帖子管理、公告管理、分類管理
    • 歡迎頭部
    • 帖子列表:序號、名稱、簡介、推薦、操作
      • 推薦操作:綁定ajax,刷新頁面
      • 取消推薦操作:ajax,刷新
      • 查看操作:跳轉帖子詳情頁面
      • 刪除操作:ajax,同時刷新
  • 公告管理:
    • 導航欄:帖子管理、公告管理、分類管理
    • 歡迎頭部
    • 公告列表:序號、標題、操作
      • 查看操作:跳轉公告詳情頁面
      • 刪除操作:ajax,同時刷新
  • 分類(板塊)管理:
    • 導航欄:帖子管理、公告管理、分類管理
    • 歡迎頭部
    • 分類列表:序號、分類名稱、操作
      • 查看該分類下所有帖子操作:跳轉到全部帖子下組合搜索出分類裏的帖子
      • 刪除操作:ajax,同時刷新

管理員接口

登錄
  • url:http://127.0.0.1:8000/my-admin/
  • GET請求:
    • 參數:無
    • 返回值:管理員登錄頁面
  • POST請求:
    • 參數:
      • admin_id:管理員用戶名
      • admin_pwd:管理員密碼
    • 返回值:
      • 成功後重定向到帖子管理頁面
    • 注意:管理員我沒有做表去存放管理員賬號密碼,所以在程序裏寫死了管理員賬號爲guanliyuan,密碼爲123456
帖子管理
  • url:http://127.0.0.1:8000/admin-home/
  • GET請求:
    • 參數:無
    • 返回值:所有帖子信息,渲染後的帖子管理頁面,需要驗證管理員是否登錄(使用session)
  • POST請求:
    • 參數:
      • type:post請求類型(以下爲type可用的值)
        • zhiding:置頂(推薦)
        • qzhiding:取消置頂
        • delete:刪除
      • t_id:帖子id,根據帖子id進行type操作
    • 返回值:
      • msg:信息
      • status:成功與否狀態
公告管理
  • url:http://127.0.0.1:8000/announcement/
  • GET請求:
    • 參數:無
    • 返回值:所有公告信息,渲染後的公告管理頁面,需要驗證管理員是否登錄(使用session)
  • POST請求:
    • 參數:
      • type:post請求類型
        • create:創建公告
        • delete:刪除公告
      • a_id:公告id,如果type=delete需要公告id
      • a_title:公告標題,如果type=create,需要公告標題
      • a_content:公告內容,如果type=create,需要公告標題
    • 返回值:
      • msg:信息
      • status:成功與否狀態
分類管理
  • url:http://127.0.0.1:8000/kind-manage/
  • GET請求:
    • 參數:無
    • 返回值:所有分類信息,渲染後的類別管理頁面,需要驗證管理員是否登錄(使用session)
  • POST請求:
    • 參數:
      • type:post請求類型(刪除or創建)
        • create:創建類別
        • delete:刪除類別
      • k_id:類別id,如果type=delete需要類別id
      • k_name:類別名稱,如果type=create,需要類別名稱
    • 返回值:
      • msg:信息
      • status:成功與否狀態
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章