[Django] C.R.U.D (2)


🍎 Django C.R.U.D (2)



Django C.R.U.D(2)で紹介した内容1HTTP通信は、Httpieを使用してサーバに要求を送信する.2Djangoアプリケーションが要求を分析(URLConf)3要求を処理するために論理を実行する(View)4DBは、データ動作を実行するために通信する.(Model)

🍕 HTTPリクエストの送信

  • httpieを使用してhttpリクエストをサーバに送信できます.
  • $ http -v post 127.0.0.1:8000/product menu='음료' category='에스프레소' product='아메리카노'
  • 送信データはjson形式(ディクソンに類似)
  • 	{
    		 'menu' : '음료'
      		 'category' : '에스프레소'
       		 'product' : '아메리카노'
    	}

    🍕 URLマッピング


    プロジェクトディレクトリのmain urls.pyは、要求されたurlアドレス、指定されたurlsを分析します.pyで送信します.
    #main urls.py
    
    ..생략
    path('product',include(product.urls))
    #app urls.py
    
    ..생략
    path('',ProductView.as_view()) 

    🍕 ビューの作成


    クラスを定義し、関数を作成します.viewは、受信要求を処理する論理を記録する.
    関数postgetviewをそれぞれ定義し、要求の方法に従って要求を分類して処理する.
    class ProductView(View) :
        def post(self, request) : 
        
        ..  생략
        
            return JsonResponse({'MESSAGE' : 'CREATED'}, status = 201)
        def get(self, request) :
        
        .. 생략
        
            return JsonResponse({'results' : results}, status = 200)

    🍕 Assignment


    1대다関係のデータは、dogsテーブルが所有者テーブルを参照します.

    POST

  • 新規オーナー登録
  • 登録子犬(飼い主情報が必要)
  • GET

  • マスターリスト(氏名、電子メール、年齢)
  • 犬リスト(名前、年齢、飼い主名)
  • 飼い主リスト(1番飼っている子犬の名前と年齢のリストを追加)
  • POSTの場合、他のクラスとして定義する条件があります.
    1番と2番のサイトを区別しました.(正確には、1番目のアドレスの後ろに文字を追加し、2番目のアドレスを作成する)
    GETの3号はちょっと難しい…forドア内forクエリーセットをパケット解除するためにドアを2つの場所に置く必要があるかどうか.
    ただコードが汚れているのを見たくないので困っています^^..もっと簡単な方法はありますか?