出版社的增刪改查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" 是文件操做必需要有的