Djangoの中のrequest.GETとrequest.POST


Djangoのviews.pyで定義されている関数のrequstパラメータは、読むことができます.request.methodはPOSTですか?それともGETですか?
まず、request.GETとrequest.POSTは二つの対象であり、種類の辞書オブジェクトは、辞書と似たようなインターフェースを提供し、他のインターフェースもあります.
POSTとGETとは、HTTPプロトコルと関係がありますか?
このブログを参照してください.http://blog.csdn.net/gideal_wang/articale/detail/4316691
このブログは両者の原理と表現形式の違いを紹介しています.非常にはっきりしています.もし原文を読む必要があれば、以下は少し結びと抜粋です.
1、POSTとGETはHTTPプロトコルで定義されたサーバとの相互作用の方法です.GETは一般的に取得/クエリに使用されます. リソース情報は、POSTが一般的に更新に使用されます. 資源情報もう一つの方法はPUTとDELETEです.
2、POSTとGETはいずれもサーバーと相互作用して検索、変更、増加、削除の操作を完成することができます.
3、
(1)GETが提出され、要求されたデータはURLの後に添付されます.URLと伝送データを分割し、複数のパラメータを&接続する.例えば、ロゴin.action?name=hddd&password=idontknow&verify=%E 4%BD%A 0%E 5%A 5%BD.(簡単なurlの例:http://127.0.0.1:8000/search/?q=Django パラメータが一つしかないので、使いませんでした.データが英字/数字であれば、そのまま送ります.スペースであれば、+に変換します.中国語/その他の文字であれば、そのままBASE 64で文字列を暗号化します.%E 4%BD%A 0%E 5%A 5%BDとなります.このうち%XXのXXは16進数表記のASCIIとなります.
POST提出:HTTPパッケージのパッケージに提出したデータを置く.上記の例で赤いフォントで表記されているのが、実際の伝送データです.
     したがって、GETが提出したデータはアドレスバーに表示されますが、POSTが提出した場合、アドレスバーは変更されません.
    (2)送信データのサイズ:まず声明します.HTTPプロトコルは送信データサイズを制限していません.HTTPプロトコル仕様もURL長を制限していません.
実際の開発における制限は主に以下の通りである.
GET:特定のブラウザとサーバは、URL長に制限があり、例えば、IEのURL長さに対する制限は、2083バイト(2 K+35)である.他のブラウザについては、Netscape、FireFoxなど、理論的には長さ制限がなく、その制限はオペレーティングシステムのサポートに依存します.
したがって、GETに対して送信データはURL長によって制限される.
POST:URLで値を伝えるのではないので、理論的にはデータが制限されません.しかし、実際には各WEBサーバでポスト提出のデータサイズを制限しています.Apache、IIS 6はそれぞれ配置されています.
4、get方式に対して、サーバ端はRequest.QueryStringで変数の値を取得し、post方式に対して、サーバ端はRequest.Formで提出したデータを取得する.
Django Bookでは、
POSTデータはHTMLの「form」タブから提出されたものであり、GETデータは「form」から送信されてもURLのクエリ文字列(the query string)である可能性がある.
Django Book第7章で与えられたコードの例では、views.pyの処理関数はrequest.methodがPOSTかどうかを検証します.
request.methodの値は’POST’であることを確認します.ユーザがフォームをブラウズする時にはこの値は存在しません.フォームが提出された時だけこの値が現れます.(後の例では、request.methodは、「GET」として設定されています.普通のウェブブラウズでは、POSTではなく、ブラウザはGETを使用しています.)request.methodの値を判断すると、フォーム表示とフォーム処理を分離するのに役立ちます.
ビューでPOSTでデータを取得すると、request.GETは空になります.
request.POST.get()を使ってフォーム指定キーの値の内容を取得できます. フォームの内容を取得しながら標準値を提供することができます.このキーに対応する値が空です.
Djangoでは、request.POSTは常にformオブジェクトと一緒に使用され、formを初期化するために使用されます. 以下のように先に方法がPOSTかどうかを判断してから、request.POSTで既存のFormオブジェクトContactFormを初期化します.request.POST自体もクラス辞書の対象ですので、Formの初期化にも使えます.
    if request.method == 'POST':
        form = ContactForm(request.POST)
要約を添付します.
8)レクェストを受け入れるデータ ベストからデータを取得し、存在しない場合はデフォルト値は1です. pageNumber=request.POST.get('pageNumber',1) getからデータを取得し、存在しない場合はデフォルト値は1です. pageNumber=request.GET.get('pageNumber',1) すべての要求からデータを取得し、存在しない場合はデフォルト値は1です. pageNumber=request.REQUST.get('pageNumber',1) 一つの要求がポストかそれともget方式かを判断する. if request.method='GET': requestの操作は参考にできます. 
http://www.woodpecker.org.cn/obp/django/django-faq/request_レスポンス.
GETとPOSTに提供された方法は参考にできます.
http://djangobook.py3k.cn/appendixH/
get、copyなどの方法の注釈
z愛