明日の学習キャンプ14週間振り返り(WIL)


💻第14週学習内容

-final project 진행 중
-final project 백엔드: 비번 리셋, 메일 전송(스팸으로 분류 안 되고 정상 전송 완료), 
                     프로필 편집(부분 동기식, 이미지 update S3연결, 비동기식으로 구현 중)
-매일 백준 알고리즘 문제 풀이

Django ORM, Query, QuerySet


https://docs.djangoproject.com/en/4.0/ref/models/querysets/
https://django-orm-cookbook-ko.readthedocs.io/en/latest/index.html
https://docs.djangoproject.com/en/4.0/ref/django-admin/#makemigrations
https://velog.io/@suasue/Django-QuerySet-method1-CRUD-fa811za4
---前に整理した部分ですが、文法と一緒に整理し直したいです.
  • ORM(Object Relational Mapping)
    オブジェクト関係を接続することで、オブジェクト向けの方法でデータベース内のデータを簡単に操作できます.つまり.Django ORMはPython言語でSQLを翻訳するキャラクターです.
  • Query
    DBに情報を要求する.クエリーは、WebクライアントがWebサーバに特定の情報を表示するように要求する処理である.
  • QuerySet
    転送されたモデルオブジェクトのリスト.クエリー・セットは、DBからデータを読み込み、フィルタまたはソートできます.
    Query Setは1つのQueryとN個のQuery Setからなる.
  • CRUDを使用すると、モデルにどのようなリストが含まれているかを直接見ることが難しいため、通常は憂鬱になり、端末にpython manage.py shellを入力することで直接確認することができます.
    上のコマンドを入力し、必要なモジュールをインポートします.from .models import User

    1)データの作成

  • create()
    データベース内の新しいオブジェクトの作成と保存
    生成されたインスタンスを返します.User.objects.create(name='강아지')
  • bulk_create()
    複数のオブジェクトを一度に作成および保存
    生成されたインスタンスをリストに含めて返します.User.objects.bulk_create([name='강아지', name='고양이'])
  • get_or_create()
    データベースにオブジェクトがある場合はインポートし、ない場合はオブジェクトを作成します.(<object>, created: bool) tupleに戻るobject-はインポートまたは作成されたオブジェクトを含み、created-オブジェクトが作成された場合はTrue、データベースからインポートされた場合はFalseUser.objects.get_or_create(name='강아지', name_id='1')
  • update_or_create()
    データベースにオブジェクトがある場合は、そのオブジェクトを変更します.ない場合は、そのオブジェクトを作成します.
    tupleとbool形式を返します
    https://docs.djangoproject.com/en/4.0/ref/models/querysets/#update_or_create( )
  • 2)Readクエリ

  • get()
    テーブルで条件を満たすオブジェクトを検索する
    クエリー・インスタンスを返します.User.objects.get(id=1) -> <User: 강아지>
  • all()
    テーブル内のすべてのレコードの表示
    クエリー・セットのすべての要素をコピーに戻します.User.objects.all()
  • values()
    テーブル内のすべてのレコードの表示
    iterableの場合、インスタンス以外のバイナリファイルを含むQuerySetを返します.
    また、フィールド名をパラメータ値として、必要なフィールド情報のみをディックシーケンスに整理することもできます.User.objects.values() , User.objects.values("name")
  • filter()
    テーブル内の条件を満たすレコードの検索
    各インスタンスを含むQuerySetを返します.User.objects.filter(first_name="Koo")
  • 3)変更の更新

  • update()
    既存のオブジェクトのフィールド値の変更
    更新されたローの数を返します.User.objects.filter(id=6).update(first_name='Gu')
  • 4)Delete


    条件に一致するすべてのローを削除
    削除されたオブジェクトの数と各オブジェクトタイプの削除回数を含むdictionaryを返します.
    get()、filter()、all()とともに使用できますProduct.objects.filter(category_id=8).delete()

    📚に感銘を与える


    CRUDを行ったときに困った部分はupdateです.まだDBとあまり馴染みがないせいか、とは思いますが…サイトを見るには、更新(修正)機能が必要です.まずはDjango ORMとDBで親しむ:)
    宇宙最強の無限ショベルで機能していますが...本当に少しずつ、少しずつ、少しずつ、少しずつ、少しずつ、少しずつ、少しずつ、少しずつ、少しずつ、基本原理に目を開けました.アリのような発展は私にとって黄金のようなものです...ㄾㄾㄾㄾㄾㄾㄾㄾ

    🍜に決心させる


    -Django shellでORM文法を使って親しむ^^
    -finalプロジェクトが担当するバックエンド機能を実行します...
    -忙しい2~3週間は2022年第1四半期に終了しました.ああ、来い.