[🤠Django]プロジェクト開始フェーズの設定


[Django]introは大まかなフレームワークを見て、今回は自分で環境を設定します

0.仮想環境の構築


コリンの私はノートパソコンですぐにプロジェクトを始めることができますが、多くのプロジェクトをすると、特定のバージョンのライブラリを使用する必要がある場合があります.
ex)aプロジェクトにはPython 3.8が必要であり、bプロジェクトにはPython 2バージョンが必要である
金持ちなら2台のノートパソコンを買うことができます

仮想環境が現れ、デスクトップに仮想空間を作成します.プロジェクトごとに環境を設定できます.

1.プロジェクトの作成


$django-admin startprojectプロジェクト名


上のコードは、プロジェクトディレクトリを作成し、管理します.pyを含む複数のファイルを生成します.次に、サブディレクトリにプロジェクト名と同じディレクトリを作成し、複数の初期ファイルを同時に作成します.(注意!(상위파일)프로젝트이름-(하위파일)프로젝트이름は2つ生成され、親プロジェクトファイルは名前を変更できますが、子プロジェクトを再命名することはできません!)

2.appの作成


$ python manage.py startappアプリケーション名


上のコードを実行すると、次のファイルがdefaultとして生成されます.
  • migrations
  • init.py
  • admin.py
  • apps.py
  • models.py
  • views.py
  • 3.データベース設定


    setting.py -> 'INSTALLED APPS'


    INSTALLED APPSはsttingです.pyのリストオブジェクトとして、新しく作成したappは、ここにアドレスを入力し、データベースに接続するように設定する必要があります.(ダメならエラー…)
    追加する順番に一番下に順番に追加すればいいです.
    最初のパスはapp名、2番目のパスはapps(apps.pyにはConfigが含まれているため)
    最後のパスの名前は、デフォルト形式で作成されたapp名+Configです.
    @ settings.py
    
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'polls.apps.PollsConfig',      
    ]
    追加するとshellは次のコードを実行してmigrateを行います.(migrateは次のモデル作成にも使われていますので、よく知っておくことをお勧めします~)
    $ python manage.py migrate 

    4.MODEL(model.py)の作成


    一般的にモデリングされています...Djangoをモデルにするならこれでしょうか?理解する
    MODELはデータベースとの通信を担当し、データを持ち帰る.関連ファイルはmodels.pyです.データを格納する場所がデータベースなので、データベースは必須不可欠な存在(データベースがないとmodel.pyも正直...意味がない)DjangoはORMで簡単にモデリングできます.pyからデータベースを簡単に管理できます.(ORMは次の位置決めで~)
  • ここではclassによって定義され、データベース内のテーブルにデータを適切に入れることができます.
  • modelclassの例は、databaseの各フィールドとして表される.各フィールドに必要なデータ型をDjangoに渡します.
  • classの各属性はdatabaseのcolumn名である
    if)models.pyの内容が変わった?確認するにはshellを再起動する必要があります
  • 5.MODELの内容を反映する


    makemigrations & migration


    models.pyが変更されたため、migrationと呼ばれるデータベースに反映するには、いくつかの操作が必要です.手順3で設定します.まずpyでappのアドレスを設定します.
  • makemigrations:makemigrationsモデルの変更を確認し、データベースの構造を変更します.このフェーズではmigrateが実行可能かどうかを確認します.(実際の移行は発生しません)
  • migrate:実際に更新をデータベースに反映します.
    migrationsディレクトリのinitial.pyから手動で変更することもできます.
  • makemigrations、migrateを1つの段階と見なして、毎回一緒にすることをお勧めします!

    6.管理者アカウントの作成(admin.py)


    管理者アカウントを作成します.
    $  python manage.py createsuperuser   
    新しく作成したappを管理者アカウントで管理する場合は、次の設定が必要です.
    @admin.py
    from .models import 앱이름
    admin.site.register(앱이름)

    7.クライアントのリクエストの処理(views.py)


    その役割は、MODELからデータをインポートして加工し、Webページの結果の生成を制御することです.
    views.pyの関数->ビューを定義します.
    views.py使用例(実際に使用)

    8.データベースへのオブジェクトの追加


    移行後、データベースに資料を追加します.

    1つ目のメソッド、1つずつ追加


    一般的なオブジェクトのメソッド:
    クラス名.objects.all() : shows all objects in a given class
    クラス名.objects.filter(attribute__startswith="") : filter out objects starts with ""
    クラス名.objects.get(pk=1): get 1 object with a primary key 1.
    .save() : save to DB
    #python manage.py shell
    
    from 앱이름.models import 클래스1, 클래스2
    
    new_object = Class1()
    new_object.attribute1 = ..
    new_object.attribute2 = ..

    2つ目の方法は、すべてを一度に追加します。

  • 第1クラスと第2クラスをForeignKeyに統合すると、第1クラスは第2クラスを持つ.
  • クラス1オブジェクト.第2 setクラス.all()クラス2は小文字でなければなりません
  • オブジェクトの作成と保存:クラス1オブジェクト.第2 setクラス.create(attribute = "")
  • >>> <QuerySet [<Choice: Not much>, <Choice: The sky>, <Choice: Wecode>]>
    
    # automatically saves to DB without using .save()
    question1.choice_set.create(choice_text="coding")