### 什麼是表單:
表單是HTML中用於提交數據給服務器的一個標籤,所有的表單元素(input/textarea/button...)都要放在form標籤當中.然後有以下參數:
1. `form`的`method`參數用於設置表單的提交方式,默認使用`POST`.
2. `action`用於設置表單的提交url,如果不寫或者保持空字符串,那麼將使用當前的URL.
### GET和POST:
1. `GET`:GET如其名,是從服務器獲取數據,不會更改服務器的狀態和數據,在URL中攜帶參數發送給服務器。
2. POST則是將一定量的數據發送給服務器,一般會更改服務器的數據。
3. POST方法的參數不能在URL當中看到,他是通過body參數傳遞給服務器的,所以相對GET方法直接能在URL當中看到傳遞的參數,顯得更加安全一些.當然,也不能簡單的判定POST方法比GET方法更安全,要使網站保持安全,需要做更多的安全處理.
### HttpRequest:
1. request.scheme:網絡請求的協議,一般是http和https
2. request.body:http請求中傳遞的原始數據,是一個byte類型的string,如果要處理form表單上傳上來的數據,應該使用request.POST,這個處理得比較好。
3. request.path:當前請求的URL路徑,但是不包括scheme和域名,比如有http://www.myblog.com/blog/1。那麼返回的將是/blog/1。會去除掉http和www.myblog.com
4. request.method:當前這個請求訪問方法,一般為GET和POST,例如可以通過以下方式進行判斷:
* request.GET:一個QueryDict的類字典類型的對象,可以通過訪問字典的方式進行訪問裡面的值,裡面的值是通過GET請求傳遞進來的參數。
* request.POST:同request.GET,但是是保存了通過POST請求傳遞上來的參數。注意,這個POST裡面不包含上傳的文件信息。如果要訪問上傳的文件,請使用request.FILES。
5. request.COOKIES:一個字典類型,包含了所有的cookie信息,key和value都是字符串。
6. request.META:存儲所有請求的頭部信息。
7. request.session:返回一個QueryDict的類字典類型的集合,這個屬性要有效,必須添加SessionMiddleware這個中間件。
8. request.is_secure():如果是HTTPS的,那麼返回True,否則返回False
9. request.is_ajax():這個請求是否是通過XMLHttpRequest進行訪問的。**他的實現原理就是去request.META中查找HTTP_X_REQUESTED_WITH,如果是XMLHttpRequest,那麼將返回True,否則返回False。**一般在第三方庫如jQuery中使用ajax方法都設置了這個值,如果自己手動寫XMLHttpRequest,那麼需要自己添加這個header,is_ajax這個方法才能生效。
### HttpResponse對象:
1. HttpResponse.__init__(content=’’,content_type=None,status=200,reason=None,charset=None)構造方法:
content:代表要發送給客戶端的內容。
content_type:代表發送給客戶端的內容類型,默認是“text/html;charset=utf-8”。
charset:響應體的編碼,如果沒有指定,則會使用content_type中設置的charset。
2. set_cookie(key,value=’’,max_age=None,expires=None,path=’/’,domain=None,secure=None,httponly=False)
設置cookie的方法。
key:cookie的key。
value:cookie的value。
max_age:cookie最大的過期時間。
expires:cookie的過期時間和日期。
path:針對哪個目錄下有效果。
domain:域名,如果你想跨域使用cookie,必須設置這個值,比如domain=”.lawrence.com”,那麼www.lawrence.com和blogs.lawrence.com和calendars.lawrence.com都可以訪問到這個cookie。
httponly:如果設置為True,客戶端的js代碼將不能訪問到cookie。
3. delete_cookie(key,path=’/’,domain=None):刪除cookie。
閱讀更多 哈雷彗星愛地球 的文章