[Django] C.R.U.D (2) Wrap-up


Django C.R.U.D (2) Wrap-up


wrap-upセッションを元に整理して修正しましょう!

(0) Initial Settings


🚩 git関連

git add .すべての変更ファイルを追加するのではなく、追加するファイル名を指定することに慣れています.

(1) models.py


🚩 Field

  • PositiveIntegerField「age」と同様に、負の値はIntegerFieldではなくPositiveIntegerFieldと定義され、ディスク容量を削減し、より効率的なメモリ管理を実現します.
  • unique = Trueフィールドに追加オプションでは、DBに重複値は保存されません.
  • M2MField上のthrough中間テーブルを手動で管理するためのフィールドオプション
    through=「中間テーブルとして使用されるテーブル名」
    中間テーブルにFk以外の値を追加するカラム(拡張性のため)
  • DateField入力フォーム「2010-07-21」
  • 🚩 App


    データベースでappを分離すると、app管理(データ、ビューなど)がより直感的になります.
    例)actorとmovieで処理するデータはそれぞれ異なるため、actor appのモデルも異なる.pyとmovie appのモデル.pyが切断されました.(真ん中に表がある場合は、1つのモデルに記入するだけです)

    (2) views.py


    作成時には、InputOutput목적を明記してください.これにより、より系統的に動作します.
    #예
    '''
    목적 : client로부터 http POST 요청으로 http request message body에 
    owner의 정보를 Json 형태로 받아서 DB의 owners 테이블에 저장하는 기능
    input  : { 'name'  : name,
    	   'email' : email,
               'age'   : age     }
    output : { 'message' : 'created' }
    '''

    (3) httpie


    通常、参照テーブルのPK値を入力します.なぜなら,nameやemailなどの値は後で変化する可能性があるがpk値は変化しないからである.(例えばowner id)
    http -v POST 8000/dog name='뽀삐' age=2 owner_id = 1