乙個多星期終於讀完了
python web
測試驅動方法的第一部分,按照書上也將該敲的**敲了一邊,這裡總結一下待辦事項**開發的非測試部分。
fromdjango.contrib import admin
from django.urls import path,include,re_path
fromlists import views
from django.conf.urls import url
import lists
urlpatterns = [
path('admin/', admin.site.urls),
url(r'^$', views.home_page, name='home'),#定義首頁的url
url(r'^lists/',include('lists.urls')),#引入的內容
]
fromdjango.conf.urls import url
from lists import views
urlpatterns = [
url(r'^new$',views.new_list,name="new_list"), #定義新建列表url
url(r'^(\d+)/$',views.view_list,name="view_list"), #定義檢視列表url,讓每乙個列表都有乙個url
url(r'^(\d+)/add_item$',views.add_item,name="add_item"),#在同乙個列表中增加新的item
]
在寫上面的內容時,因為我用的是
dango2.0
版本,當我嘗試使用
path
來替代url
,在新建
add_item
的內容後,
assertionerror:0
!=1的錯誤一直無法消除,用回
url後就不出現這個錯誤了,不知道是什麼原因,有知道的希望分享一下。其次,
path
中使用正規表示式時使用的是
re_path。
from django.db import models
#和資料庫裡表相對應,乙個表對應乙個model類,表裡的字段(列)對應類中屬性,行對應類物件
class list(models.model):
pass
class item(models.model):
text = models.textfield(default = '')#定義test為textfield,預設為''
list = models.foreignkey(list,default = none, on_delete=models.cascade)#通過外來鍵foreignkey使list與list相連
django2.0中外鍵相連時沒有on_delete屬性會報錯
#views.py中的每乙個函式都對應urls.py中的乙個url
def home_page(request):#主介面
return render(request,'home.html')#返回home.html介面
def view_list(request,list_id):#檢視函式,顯示介面
list_ = list.objects.get(id = list_id)#在資料庫中獲取乙個id為list_id的list列表
#items = item.objects.filter(list = list_)#返回資料庫裡的多個物件
return render(request,'list.html',)#返回list.html介面,並向裡傳入資料庫中的list資料
def new_list(request):#新建乙個list
list_ = list.objects.create()#在資料庫中建立乙個list列表
item.objects.create(text = request.post['item_text'],list = list_)#建立乙個item列表,並向裡傳入item_text引數,與list關聯
return redirect('/lists/%d/' % (list_.id))#重定向'lists/%d'的url
def add_item(request,list_id):#在list中增加乙個item
list_= list.objects.get(id = list_id)#在資料庫中獲取乙個id為list_id的list列表
item.objects.create(text = request.post['item_text'],list = list_)
return redirect('/lists/%d/' % (list_.id))#重定向'lists/%d'的url
}:}#forloop.counter顯示序號
工作過程:
首先,url'http://localhost:8000/'匹配成功後,連線到檢視views.home_page(),檢視渲染模板home_page.html,在瀏覽器中開啟home_page.html。
此時,在home_page頁面的表單中輸入資料並回車,注意home_page.html的表單中:
url(r'^new$',views.new_list,name="new_list"),於是帶著"item_text"訪問views.new_lists()檢視:
new_list()函式執行,在資料庫中新建了乙個列表list_,然後新建乙個item,text屬性為表單帶來的'item_text',list屬性為list_。然後通過redirect()函式轉到url 』lists/%d',%d是當前列表list_的id。這個url在urls.py中匹配的情況是:
url(r'^(\d+)/$',views.view_list,name="view_list"),連線到檢視views.view_list(request,list_id),其中list_id是正規表示式中的(/d+),正規表示式中的每乙個「捕獲組」,也就是括號中的內容,會成為引數按順序傳遞給檢視函式。
view_list()檢視的作用是通過list_id找到需要展示的列表list_,然後渲染模板view_list.html,在瀏覽器中開啟渲染後的模板。
view_list.html由兩部分組成,部分迭代list中的每個item元素,並按迴圈計數展示。
表單部分和home_page.html類似:
在表單中輸入資訊後回車,表單帶著名為"item_text"的資料,通過post方式,匹配url "/lists/}/add_item",在urls.py檔案處,有:
url(r'^(\d+)/add_item$',views.add_item,name="add_item"),同上,匹配到檢視函式add_item():
add_item()接受引數list_id,開啟id為list_id的列表list_,並在建立乙個text屬性為post['item_text'],list屬性為list_的item。並通過redirect()轉到url '/lists/%d/'%(list_.id)。這一步和上面類似,將回到view_list()檢視並開啟view_list.html。
NAND控制器驅動測試方法
md test node v0.1 2014.12.7 draft 當完成乙個linux的nand flash controller驅動時,可以使用核心中提供的測試 去測試 你寫的驅動。實際上當你寫的nand flash controller驅動想上傳到linux kernel的主線 時,maint...
Linux驅動 LED驅動測試
環境 主機 fedora12 目標板 mini6410 目標板linux核心版本 2.6.38 實現功能 驅動目標板4個led.說明 led與6410引腳對應連線 led1 gpk4 led2 gpk5 led3 gpk6 led4 gpk7 驅動源 led driver.c cpp view pl...
測試驅動開發
測試驅動開發 test driven development,英文縮寫tdd 是極限程式設計的乙個重要組成部分,它的基本思想就是在開發功能 之前,先編寫測試 也就是說在明確要開發某個功能後,首先思考如何對這個功能進行測試,並完成測試 的編寫,然後編寫相關的 滿足這些測試用例。然後迴圈進行新增其他功能...