在《python web開發:測試驅動方法》一書中的第七章,主要講解了如何利用url的方式進行資料的傳遞和儲存。
本書主要採用了先測試、後建立功能的方式進行書寫,基本上所有的內容都是通過功能測試、單元測試和實現功能三個步驟的迴圈工作。這種方法讓我們能夠深刻地理解tdd這一基本思想,但並不利於django框架的基本學習,所以我將前端html頁面、檢視層views.py和模型層models.py單獨摘出來,幫自己梳理一下思路。
到本書的第七章,建立了兩個html檔案,分別是主頁的home.html和用於不同使用者記錄和傳輸資料的list.html。
看過這本書的讀者可以知道,在這一章,list.html是copy自home.html,之後刪除了home中的table部分。home.html的主要功能是在form元素中新增method="post"
action="/lists/new"
這兩個屬性,當使用者在輸入框中輸入資料後,以post的方式,傳輸到新的url/lists/new
。
同理,list.html的form 的action屬性被設定為/lists/}/add_item
, 跳轉到了新的頁面。
home.html
to-do liststitle>
head>
start a new to-do listh1>
method="post"
action="/lists/new">
name="item_text"
id="id_new_item"
placeholder="enter a to-do item"/>
form>
body>
html>
list.html
to-do liststitle>
head>
your to-do listh1>
method="post"
action="/lists/
}/add_item">
name="item_text"
id="id_new_item"
placeholder="enter a to-do item"/>
form>
id="id_list_table">
}: }td>
tr>
table>
body>
html>
個人理解,django的urls.py檔案就是乙個對映表,可以將url與檢視層的功能方法對應起來,換句話說,它就是乙個url請求對映表。
django建議開發者將專案的總urls檔案與各個應用的檔案分開儲存,所以本文建立了superlists/urls.py
和lists/url.py
兩個urls.py。
superlists/urls.py
from django.conf.urls import url, include
from lists import views as list_views
from lists import urls as list_urls
urlpatterns = [
url(r'^$', list_views.home_page, name='home'),
url(r'^lists/', include(list_urls)),
]
lists/url.py
from django.conf.urls import url
from lists import views
urlpatterns = [
url(r'^new$', views.new_list, name='new_list'),
url(r'^(\d+)/$', views.view_list, name='view_list'),
url(r'^(\d+)/add_item$', views.add_item, name='add_item'),
]
django並不是嚴格意義上的mvc模式,即model, view, controller。因為它的view層承擔了傳統的控制層的一部分功能,可以進行資料的操作。
在本文中,通過url的對映,views.py
中存在著一一對應的方法。使用者從home.html進入**後,輸入資料跳轉到list.html
中,並執行new_list(request):
跳轉到持有相關id號的url中,並通過view_list(request, list_id):
顯示資料。而在list頁面中,每次提交則再次觸發action="/lists/}/add_item"
,將資料新增到資料庫中後在此跳轉回/lists//
。
REST架構風格
rest風格通過uri訪問得到的資訊是自我描述的,包括了資訊本身和表示方式 html,xml,資料流等 資訊的描述是採用最通用的協議 http 超文字轉換協議 來進行的.客戶端根據資訊的表示解析和展示資訊本身.而互動是通過http的幾個基本操作 get,put,post,delete 來實現.一些看...
REST設計風格
2000年,roy thomas fielding博士在他的博士 architectural styles and the design of network based software architectures 中提出了幾種軟體應用的架構風格,rest作為其中的一種架構風格在這篇 中進行了概括...
REST架構風格
rest 即representational state transfer.資源 表現層狀態轉化,是目前最流行的一種網際網路軟體架構 http協議裡面,四哥表示操作方式的動詞 get post put delete。他們分別對應四種基本操作 get用來獲取資源 post用來新建資源 put用來更新資...