Django的圖書管理系統的實現步驟(附代碼)

不言
發布: 2018-10-08 16:11:54
轉載
7449 人瀏覽過

這篇文章帶給大家的內容是關於Django的圖書管理系統的實現步驟(附代碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

出版社的增刪改查

展示出版社清單: 

1. 建立一個表格結構:


##2. 再配合那兩個條指令即可建立一個press表


#建立出版社函數,並在url中進行設定

#建立HTML頁面,展示出版社的表格

#for迴圈

{% for i in ret %}  ---- 範本語言

i 指的是從ret 拿到的物件
{{ forloop.counter }}             --> ; for迴圈從1開始計數
{{ forloop.counter0 }}            --> for迴圈從0開始計數
{% endfor %}



##新增出版社(在原表中新增)

要新增出版社,先跳到新增頁面,建立新增出版社函數(在url中配置好):

##建立新增頁面把頁面輸入的資訊以post的方式提交一個字典,封裝到name鍵值中,最終傳給press_add

 新增完成並展示:

#也可以在出版社清單頁面建立a 標籤,點選即可跳轉新增頁面

刪除出版社:

在出版社清單中新增刪除動作,點選刪除項目,把要刪除的該項目在資料庫中刪除.在出版社清單的html頁面中標示點擊''刪除''請求後,接收請求的物件.

建立刪除出版社的函數:即建立接收請求的函數,對該請求做出處理.

編輯出版社

修改原有出版社的資訊,在原有列表上新增'編輯'選項,點擊該選項跳到編輯頁面.

#建立編輯出版社的函數(並完成設定)在函數中修改並同步資料庫

# 建立編輯的HTML頁面

##圖書的增刪改查

在資料庫中建立圖書的清單:

在models中建立圖書的表結構的類別透過那兩個指令在資料庫中建立表格

###建立對書清單進行操作的函數(並在url中配置好)################# #### 創建在前端展示的html頁################## 注意: 在函數中對錶進行操作,需要透過ORM語言編寫的表結構類別,來取得表格的資訊###############輸出的Press object 物件是透過外鍵取得的出版社物件也可以列印出出版社名字: print(data[0].press. name)###############

此外data[0].press_id 可以查詢到與這本書相關聯的出版社id 是透過外鍵查詢的,在類別中建立表結構過程中,建立外鍵會自動在資料庫中建立外鍵關聯id,此時的外鍵id就在本表中.

#data[0].press.id 也可以查詢到與這本書相關聯的出版社id 是透過連表查詢的,.press是出版社的對象, .id自然能夠獲取到與data[0]相關的出版社id.

添加書籍

建立新增書籍的操作函數(在url中配置好)

#(注意: 上圖name錯誤,表格結構中書籍的名字標題是title)

建立新增頁面

#刪除書籍

在書籍清單中新增刪除操作項,點選操作項跳轉帶刪除函數進行刪除操作.

建立要刪除書籍的操作函數

編輯書籍

在書籍頁面中,新增編輯操作的選項,選取要編輯的書籍物件,跳轉頁面進行修改,然後儲存.

建立編輯書籍的操作函數(並配置好):

  

注意: 末尾的'return' 表示當還未進行資訊編輯時,需要先跳到編輯頁面,依照選定好的物件進行資訊的編輯,編輯完成後,提交.

建立編輯頁面:

#作者的曾刪改查(多對多)

作者可以寫多本書,一本書也可以有多個作者.

創建作者和書的關係

方法一:   

# 作者:
class Author(models.Model):
    id = models.AuthorField(primary_key=True) # 自增id主键
    name = models.CharField(max_length=32) # 作者名字
# 创建作者和书籍的关系表
class Author2Book(models.Model):
    id = models.AuthorField(primary_key=True)
    author = models.Foreignkey(to='Author', on_delete=models.CASCADE)
    book = models.Foreignkey(to='Book', on_delete=models.CASCADE)
登入後複製

#方法二(用orm創建) 

class Author(models.Model):
    id = models.AuthorField(primary_key=True) # 自增id主键
    name = models.CharField(max_length=32) # 作者名字
    books = models.ManyToManyField(to='Book')
登入後複製

查詢:在資料庫中找到所有作者資訊,然後在頁面展示出來

建立作者函數並配置好

#建立html檔案在頁面上展示出來

# 新增:建立新增動作的函數,展示新增頁面,取得使用者的新增資訊,傳回給資料庫,再展示作者訊息.

建立新增操作的函數,並配置好

#建立獲取資訊的頁面

刪除和編輯

在作者清單中新增刪除操作項目,鎖定要刪除的物件,


# 建立要刪除的操作函數,

#在作者清單中新增編輯操作,鎖定要編輯的物件

 建立編輯函數,並設定好:

 創建html頁面,展示編輯頁面並取得使用者填寫的資訊

注意: 範本語言, in 判斷{% if book in author.books.all %}  意為該書在作者所關聯的書籍清單中的話.

ORM 編輯多對多不能直接編輯第三張表,要藉助ORM提供的方法:

all()  ; add(id1, id2);  set([id1, id2]);  clear()清空

上傳檔案

创建上传文件的操作函数,并配置好

创建上传文件的html页面  

enctype="multipart/form-data" 是文件操作必须要有的
登入後複製

以上是Django的圖書管理系統的實現步驟(附代碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:cnblogs.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!