1. 程式人生 > >Django小專案--待辦清單(四)(從表單中獲取資料並存入資料庫)

Django小專案--待辦清單(四)(從表單中獲取資料並存入資料庫)

首先進入主頁(要記得先進入虛擬環境並且通過python  mange.py runserver啟動本地伺服器),我們知道主頁匹配的網址是localhost:8000/todo/home,在瀏覽器上輸入並回車。

在頁面的右上角有一個新增待辦事項的按鈕,輸入內容並點選新增之後,內容就會新增到頁面的表裡面,成為第5個待辦事項。

我們知道,點選按鈕之後將會提交一個表單。這個表單就是我們的待辦事項。

而且需要注意的是,我們在將待辦事項新增進資料庫後,內容還會返回頁面,因此我們在views.py在寫相關程式碼。

在寫之前先看錶單是怎麼樣的,我們點開base.html模板頁面

action是空,表示提交到當前頁面,所以我們在home頁面提交,就會提交到home頁面,然後就會提交到views.home交給home方法來處理這個提交的內容。

還有一個需要注意的點就是上面的input,它的name是dbsx,在django裡面一定要寫上這個屬性,它是為了後臺能夠獲得該資料的保障。

接著我們看看home.py長啥樣,

我們知道,重新整理網頁是get請求,而提交辦單是post請求,因此我們需要寫判斷語句來區分這兩種情況。

我們直接看第二個if語句,request.POST['dbsx'].這裡面的引數就是我們提交表單時的那個input的name屬性,所以我們可以通過

request.POST['dbsx']來獲取提交的資料。

當新增的內容不為空時,我們就要將內容插入資料庫。因此我們需要把資料庫對應的庫導進來

Todo類就是我們的資料庫模板,我們可以通過該類的物件來對資料進行插入。

a_row = Todo(thing=request.POST['dbsx'],done=False),我們將待辦事項叫做thing,所以我們將獲取的資料賦值給它。

賦值完之後一定要進行儲存,這樣才能真正的修改資料表。

Todo.objects.all()就是顯示資料表裡面的所有行。

render進行渲染的時候,第三個引數要求是字典,因此我們寫一個字典content = {'list':Todo.objects.all()},然後將整個表渲染到home頁面,這樣我們就實現了將資料庫裡的表顯示到前端頁面上。

如果是get請求的話,就直接把現有的表顯示到頁面即可。