Django之圖書管理系統

 

 

 

 

 

出版社的增刪改查html

 展現出版社列表: 前端

  1. 建立一個表結構:數據庫

  

  

    2. 再配合那倆條命令便可建立一個press表函數

    

 

  建立出版社函數,並在url中進行配置oop

    

 

  建立HTML頁面,展現出版社的表post

    for循環url

    {% for i in ret %}  ---- 模板語言
    i 指的是 從 ret 中拿到的對象
    {{ forloop.counter }} --> for循環從1開始計數
    {{ forloop.counter0 }} --> for循環從0開始計數
    {% endfor %}spa

    

  

 添加出版社(在原表中添加)3d

  要添加出版社,先跳轉到添加頁面,code

    建立添加出版社函數(在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" 是文件操做必需要有的

 

    

相關文章
相關標籤/搜索