基於 Django 的圖書館借閱系統


項目 GitHub 倉庫

項目需求

requirements

系統建模

活動圖

普通用戶注冊后通過前台頁面登錄,進行瀏覽、查詢、借書、還書等操作。

圖書館管理員通過后台管理界面登錄,可直接對數據庫進行增刪改查操作。

活動圖

用例圖

  1. 首頁

    用戶可以選擇登錄或注冊。

    用例圖-首頁

  2. 個人中心

    用戶可以瀏覽借閱列表,對列表中的書籍進行還書操作。如果逾期,則還需要繳納罰金。

    用例圖-個人中心

  3. 借書頁面

    用戶首先通過輸入關鍵字查詢相關書籍,然后對返回列表中的書籍進行借書操作。

    用例圖-借書頁面

  4. 后台管理

    管理員登錄后台后可以查看數據庫和日志信息,必要時進行增刪改查操作。

    用例圖-后台管理

類圖

在 Django 框架下,所有數據庫表模型均繼承於 Model 類,所有視圖邏輯均繼承於 View 類。控制器與用戶進行交互,並提供模型數據至視圖,實現數據與邏輯的解耦。

類圖

模型 描述
User 用戶表,保存所有的用戶信息,包括用戶名、姓名、密碼(摘要)字段,與 Book 存在多對多關系。
Book 書目表,保存所有的書籍信息,包括書號、書名、作者、出版社、是否可借字段。
Borrow 借閱關系表,保存所有的借閱信息,包括序號、借閱者、所借書籍、借出時間、歸還期限字段,其中借閱者和所借書籍分別是參照 User 和 Book 的外鍵。
Log 日志表,保存所有注冊、登錄、登出、借書、還書的記錄,包括序號、時間、用戶、相關書籍、操作字段,其中用戶和相關書籍分別是參照 User 和 Book 的外鍵。
視圖 描述
RegisterView 注冊視圖,獲取新用戶的信息進行注冊。
LoginView 登錄視圖,獲取用戶名和密碼進行登錄,並將當前用戶狀態存入 Session。
LogoutView 登出視圖,清空 Session,登出。
HomeView 個人中心視圖,顯示用戶的借閱列表,並提供還書按鈕。
SearchView 查詢視圖,通過輸入關鍵字進行查詢,返回相關的書籍列表,並提供借書按鈕。
BorrowView 借書視圖,完成借書邏輯。
ReturnView 還書視圖,完成還書邏輯,若逾期則給出繳納罰金提示。

順序圖

  1. 注冊

    用戶打開注冊頁面,輸入個人信息,RegisterView 獲得后向 User 查詢該用戶是否不存在,若是則在 User 中增添該用戶,並將本次注冊操作寫入 Log,然后返回注冊成功信息。

    順序圖-注冊

  2. 登錄

    用戶打開登錄頁面,輸入用戶名和密碼,LoginView 獲得后向 User 查詢該用戶是否存在,若是則將本次登錄操作寫入 Log,然后跳轉頁面到用戶的個人中心。HomeView 向 Borrow 查詢該用戶的借閱信息,並返回借閱列表。

    順序圖-登錄

  3. 借書

    用戶打開查詢界面,輸入想要借的書籍的關鍵字,SearchView 獲得后向 Book 查詢相關書籍,並返回書籍列表。用戶點擊列表項目的借書按鈕,BorrowView 向 Borrow 中增添一條該用戶的借書記錄,然后在 Book 中將該書籍設置為不可借,並將本次借書操作寫入 Log,最后返回借書成功信息。

    順序圖-借書

  4. 還書

    用戶打開個人中心頁面,HomeView 向 Borrow 查詢該用戶的借閱信息,並返回借閱列表。用戶點擊列表項目的還書按鈕,ReturnView 從 Borrow 中刪除這條借書記錄,然后在 Book 中將該書籍設置為可借,並將本次還書操作寫入 Log,最后返回還書成功信息。如果還書逾期,則還將返回繳納罰金的提示信息。

    順序圖-還書

狀態圖

狀態圖

系統部署說明

Requirements

  • Python 3.6

  • Django 3

  • Bootstrap 3

  • jQuery 3

  • MySQL 8

啟動系統

  1. 在 MySQL 中新建一個名為 library 的數據庫,字符集選擇 UTF-8

  2. 安裝 MySQL 驅動 mysqlclient

    pip install mysqlclient
    
  3. library/library/settings.py 中配置數據庫的 USERPASSWORD

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'library',
            'USER': '****',
            'PASSWORD': '************',
            'HOST': '127.0.0.1',
            'PORT': '3306',
        }
    }
    
  4. 進入項目目錄下。

    cd ./library
    
  5. 遷移數據庫。

    python manage.py makemigrations
    python manage.py migrate
    
  6. 啟動系統。

    python manage.py runserver
    
  7. 訪問 127.0.0.1:8000 。

展示后修改和優化說明

  1. 增加注冊時的合法性檢驗:學號必須為 8 位(多於 8 位的部分無法輸入),密碼不能少於 6 位,否則將給出提示。

    學號

    密碼

  2. 實現對書名、作者、出版社三個字段的模糊查詢。此外,將有館藏記錄但當前已借出的書籍也顯示出來(沒有借書按鈕),而不是僅展示當前能借的書籍。這樣能告訴用戶這本書是有的,只是當前已經被別人借走了,可以過一段時間再來查詢。

    借書


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM