DjangoのRequestとResponseシリーズの10


1,HttpRequest知識まとめ
定義:
サーバはhttpプロトコルのリクエストを受信すると、メッセージに基づいてHttpRequestオブジェクトを作成します.このオブジェクトは作成する必要はありません.サーバで構築したオブジェクトを直接使用すればいいです.ビューの最初のパラメータは、django.httpモジュールでHttpRequestオブジェクトのAPIを定義するHttpRequestオブジェクトでなければなりません.
属性:
path:     ,            ,     。

method:     ,       HTTP  ,     :'GET'、'POST'。
               get  ,    。
                  ,     method   post  postencoding:     ,            。
   Noneutf-8。
        ,                     

GET:          ,  getPOST:          ,  postFILES:          ,         。

COOKIESPythoncookie,        。

session:                 ,       ,   Django           

QueryDictオブジェクト
  • 定義django.http.QueryDict
  • HttpRequestオブジェクトの属性GET、POSTはいずれもQueryDictタイプのオブジェクト
  • である.
  • python辞書とは異なり、QueryDictタイプのオブジェクトが同じキーに複数の値を持つ場合を処理するために使用される
  • メソッドget():キー取得値に基づいて1つのキーが同時に複数の値を持つと最後の値が取得されますキーが存在しない場合はNone値が返され、デフォルト値を設定して後続処理できます
    dict.get(' ',   )
        
    dict[' ']

    メソッドgetlist():キー取得値に基づいて値をリストで返し、指定したキーのすべての値を取得できますキーが存在しない場合は空のリスト[]を返し、デフォルト値を設定して後続処理を行うことができます
    dict.getlist(' ',   )

    GET属性
  • 要求フォーマット:
  • リクエストアドレスの最後に使用しますか?その後、「キー=値」の形式でつなぎ、複数のキー値ペア間を&で接続します.

  • 例:URLは以下の通り
    http://www.baidu.com/?name=xiaoke&age=26&hobby=python
    要求パラメータは次のとおりです.
    name=xiaoke&age=26&hobby=python
    分析要求パラメータ:
    キーは「name」、「age」、「hobby」、値は「xiaoke」、「26」、「python」です.DjangoではHttpRequestオブジェクトのGET属性を使用してget側方式要求のパラメータを取得できます.GET属性はQueryDictタイプのオブジェクトを返し、キーと値は文字列タイプです.キーは、開発者がコードを作成するときに決定します.値はデータに基づいて生成されます.
    POST属性
  • formフォーム要求を使用する場合、method方式がpostであればpost方式の要求が開始され、HttpRequestオブジェクトのPOST属性受信パラメータを使用する必要があり、POST属性はQueryDictタイプのオブジェクトを返す.

  • 質問:フォームformはどのようにパラメータを提出しますか?答え:コントロールname属性の値をキーとし、value属性の値を値とし、キー値対コミットを構成します.コントロールにnameプロパティがない場合はコミットされません.checkboxコントロールの場合、nameプロパティの値は同じグループで、選択されたアイテムがコミットされ、キーが多ければ多い場合があります.キーはコントロールname属性の値であり、開発者によって作成されます.値はユーザーが記入または選択したものです.
    2,HttpResponseオブジェクト
    定義#テイギ#
    ビューは、リクエストを受信して処理した後、HttpResponseオブジェクトまたはサブオブジェクトを返す必要があります.HttpResponseオブジェクトのAPIはdjango.httpモジュールで定義されています.HttpRequestオブジェクトはDjangoによって作成され、HttpResponseオブジェクトは開発者によって作成されます.
    ツールバーの
  • content:返される内容を表します.
  • charset:responseが採用する符号化文字セットを表し、デフォルトはutf-8である.
  • status_code:返されるHTTP応答ステータスコード.
  • content-type:データを返すMIMEタイプを指定します.デフォルトは「text/html」です.

  • 方法
  • init:HttpResponseオブジェクトを作成し、コンテンツの初期化を完了します.
  • set_Cookie:Cookie情報を設定します.
  • write:応答体にデータを書きます.
  • cookieは、ブラウザにキー値で格納された純粋なテキスト情報であり、ユーザー追跡を実現します.–max_ageは、指定した秒数後に期限が切れたことを示す整数です.–expiresはdatetimeまたはtimedeltaオブジェクトで、セッションはこの指定した日付/時間で期限切れになります.–max_ageとexpiresの2つを選択します.有効期限を指定しないと、ブラウザを閉じるとクッキーが有効期限が切れます.
    set_cookie(key, value=”, max_age=None, expires=None)
  • delete_Cookie(key):指定したkeyのCookieを削除し、keyが存在しない場合は何も発生しません.

  • サブクラスJsonResponse
    ブラウザでjavascriptを使用してajaxリクエストを開始すると、json形式のデータが返されます.クラスJsonResponseはHttpResponseオブジェクトから継承され、django.httpモジュールで定義され、オブジェクトの作成時に辞書をパラメータとして受信します.
  • JsonResponseオブジェクトのcontent-typeは'アプリケーション/json'です.

  • サブクラスHttpResponseRedirect
    1つの論理処理が完了すると、クライアントにデータを提示する必要はなく、追加に成功し、修正に成功し、削除に成功した後にデータリストを表示するなど、他のページに戻る必要があります.データのリストビューはすでに開発が完了しており、リストのコードを再作成する必要はありません.このビューに移動すればいいです.この場合、ユーザーが要求した効果をシミュレートする必要があります.1つのビューから別のビューに移動することをリダイレクトと呼びます.
  • Djangoでは、HttpResponseRedirectオブジェクトのリダイレクト機能が提供され、このクラスはHttpResponseから継承され、django.httpモジュールで定義され、返されるステータスコードは302である.