django 學習筆記 06 表單

2021-05-22 17:12:10 字數 3083 閱讀 4713

equest.path 除網域名稱 以外的請求路徑, 以正斜槓開頭 eg.」/hello/」

request.get_host() 主 機名( 比如, 通常所說的網域名稱) eg.」127.0.0.1:8000″ or 「www.example.com」

request.get_full_path() 請求路徑, 可能包含查 詢字串

eg.request.is_secure() 「/hello/?print=true」

如果通過https 訪問, 則此方法返回true, 否則返回false eg.true 或者 false

request.get 和request.post 。二者都是類字典物件, 你可以通過它們來訪問get 和post 資料。

返回到模板中

you searched for:}

found } book}.

no books matched your search criteria.

def search(request):

errors =

if 『q』 in request.get:

q = request.get['q']

if not q:

elif len(q) > 20:

else:

books = book.objects.filter(title__icontains=q)

return render_to_response(』search_results.html』, )

return render_to_response(』search_form.html』, )

****

****

****

django 帶有乙個form 庫, 稱為django.forms, 這個庫可以處理我們本章 所提到的包括html 表單顯示以及驗 證。 接下來我們來深入了解一下form 庫, 並使用她來重寫contact 表單應用。

forms.py 。在存放「 views.py「 的目錄中, 建立這個檔案, 然後輸入:

from django import forms

class contactform(forms.form):

subject = forms.charfield()

email = forms.emailfield(required=false)

message = forms.charfield()

這看上去簡單易懂, 並且很像在模 塊中使用的語法。 表單中的每乙個字段( 域) 作為form 類的屬性, 被展現成field 類。這裡只用到charfield 和emailfield 型別。 每乙個欄位都預設是必填。要使email 成 為可選項, 我們需要指定required=false 。

讓我們鑽研到python 直譯器 裡面看看這個類做了些什麼。 它做的第一件事是將自己顯示成html:

>>> from contact.forms import contactform

>>> f = contactform()

>>> print f

subject:

email:

message:

為了便於訪問,django 用「 「 標誌, 為每乙個字段新增了標籤。 這個做法使預設行為盡可能合適。

預設輸出按照html 的<「 table「 > 格式, 另外有一些其它格式的輸出:

>>> print f.as_ul()

subject:

<

email:

message:

<

>>> print f.as_p()

subject:

email:

message:

請注意, 標籤 、

message: }

在校驗失敗的情況下, 這段** 會在包含錯誤欄位的div 的class 屬性中增加乙個」errors」, 在乙個有序列表中顯示錯誤資訊。

django學習筆記6 表單

django表單 mytest test1 forms.py from django import forms class addform forms.form a forms.integerfield b forms.integerfield 匯入相應的庫,定義表單輸入的型別 修改mytest t...

Django學習筆記之form表單

表單是通過類實現的,繼承自forms.form,然後在裡面定義要驗證的字段.在表單中,建立欄位跟模型是一模一樣的,但是沒有null true或者blank true等這幾種引數了,有的引數是required true false.使用is valid 方法可以驗證使用者提交的資料是否合法,而且htm...

Django 表單學習總結

今天將表單這一章看完了,感覺稀里糊塗的,在此做個總結 1.引入 from django import forms 2.自定義表單類 form.py class contactform forms.form subject forms.charfield max length 20 email for...