雲を使ったジャンプスタンプゴー-2章(続き)


第二章:ドラムの基本要素を熟知する.
812-2データ管理モデル
1.データを管理するモデルとは?
  • は、通常、SQLクエリー文を使用してWeb開発においてデータを格納およびクエリーします.つまり、データを格納してクエリーするためには、SQLクエリー文を個別に学習する必要があります.まるで勉強するものが一つ増えたようだ.ただし、モデルを使用する場合は、SQLクエリー文を知らなくてもデータを格納およびクエリーできます.
  • 2.migrateとテーブルについて理解します.
    81[1]障害開発サーバの起動時の警告メッセージの表示
    python manage.py runserverコマンドの実行時に発行される警告メッセージの詳細
    見てみましょう.中間の警告情報を見ると、「Youhave 18未適用遷移」は「未適用遷移が18個ある」と解釈される.
    [コマンドプロンプト]
    root@goorm : /workspace/mystie# python manage.py runserver
    /workspace/mystie> python manage.py runserver
    Watching for file changes with StatReloader
    Performing system checks...
    System check identified no issues (0 silenced).
    You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
    Run 'python manage.py migrate' to apply them.
    May 06, 2020 - 09:49:37
    Django version 3.1.3, using settings 'config.settings'
    Starting development server at http://127.0.0.1:8000/
    Quit the server with CTRL-BREAK.
    上記の警告メッセージはadmin、auth、contenttypes、sessionsアプリケーションに関連しています.このエラーを解決するにはpython manageを使用します.pymigrateを実行する必要があるアドバイザを特定できます.
    migrateコマンドを使用してアプリケーションに必要なテーブルを作成する
    [コマンドプロンプト]
    root@goorm : /workspace/mystie# python manage.py migrate
    Operations to perform:
    Apply all migrations: admin, auth, contenttypes, sessions
    Running migrations:
    Applying contenttypes.0001_initial... OK
    Applying auth.0001_initial... OK
    Applying admin.0001_initial... OK
    Applying admin.0002_logentry_remove_auto_add... OK
    Applying admin.0003_logentry_add_action_flag_choices... OK
    Applying contenttypes.0002_remove_content_type_name... OK
    Applying auth.0002_alter_permission_name_max_length... OK
    Applying auth.0003_alter_user_email_max_length... OK
    Applying auth.0004_alter_user_username_opts... OK
    Applying auth.0005_alter_user_last_login_null... OK
    Applying auth.0006_require_contenttypes_0002... OK
    Applying auth.0007_alter_validators_add_error_messages... OK
    Applying auth.0008_alter_user_username_max_length... OK
    Applying auth.0009_alter_user_last_name_max_length... OK
    Applying auth.0010_alter_group_name_max_length... OK
    Applying auth.0011_update_proxy_permissions... OK
    Applying sessions.0001_initial... OK
    メッセージは、migrateによってadmin、auth、contenttypes、sessionsアプリケーションで使用されるテーブルが作成されたことを示します.この机についてよく知る必要はありません.ほとんど怒らないから.
    3.モデルの作成
    今、パブロで使われているモデルを作ってみましょう.パブロは質問答弁掲示板なので、質問や答弁に対応するモデルがあるはずです.
    構想[1]モデル属性
    質問モードには、次の属性が必要です.
    属性名
    説明:
    subject
    問題のタイトル
    content
    問題の内容
    create_date
    問題が作成された時刻
    答弁パターンには、次の属性が必要です.
    属性名
    説明:
    question
    質問(質問の答えを知る必要があるため、質問のプロパティが必要)
    content
    答弁の内容
    create_date
    回答の作成日時
     [2] pybo/models.pyで問題モデルを作成するには
    [ファイルパス:/workspace/mysite/pybo/models.py]
      from django.db import models
    # ---------------------------------- [edit] ---------------------------------- #
    class Question(models.Model): 
        subject = models.CharField(max_length=200)
        content = models.TextField()
        create_date = models.DateTimeField()
    # ---------------------------------------------------------------------------- #
    上に、subjectは文章のタイトルを記録し、内容は文章の内容を記録し、create dateは書く時間を記録します.
     [3] pybo/models.pyで回答モデルを作成する
    [ファイルパス:/workspace/mysite/pybo/models.py]
    from django.db import models
    class Question(models.Model):
        subject = models.CharField(max_length=200)
        content = models.TextField()
        create_date = models.DateTimeField()
      # ---------------------------------- [edit] ---------------------------------- #
    class Answer(models.Model):
        question = models.ForeignKey(Question, on_delete=models.CASCADE)
        content = models.TextField()
        create_date = models.DateTimeField()
    # ---------------------------------------------------------------------------- #
    上でAnswerモデルは質問に対する回答であるため,Questionモデルを属性としなければならない.ForeignKeyを使用すると、異なるモデルをプロパティとして使用できます.ForeignKeyは簡単に言えば他のモデルとの接続,on delete=modelsである.CASCADEとは、答えに関する質問を削除した場合、答えも削除するという意味です.
     [4] config/setting.pyにpyboアプリケーションを登録する
    [ファイルパス:/workspace/mysite/config/setting.py]
    (... 생략 ...)
    INSTALLED_APPS = [
    # ---------------------------------- [edit] ---------------------------------- #
        'pybo.apps.PyboConfig',
    # ---------------------------------------------------------------------------- #
        'django.contrib.admin',
        'django.contrib.auth',
        (... 생략 ...)
    ]
    (... 생략 ...)
    [5]migrateを使用してテーブルを作成する
    「81 makemigration」を使用して、テーブルタスクファイルを作成します.
    [コマンドプロンプト]
    root@goorm : /workspace/mystie# python manage.py makemigrations
    Migrations for 'pybo':
     pybo\migrations\0001_initial.py
      - Create model Question
      - Create model Answer
    運転[6]migrate
    [コマンドプロンプト]
    root@goorm : /workspace/mystie# python manage.py migrate
    Operations to perform:
     Apply all migrations: admin, auth, contenttypes, pybo, sessions
    Running migrations:
     Applying pybo.0001_initial... OK
    ここまでついていけば、実際のテーブルが出来ています.
  • 参照サイト:https://wikidocs.net/722802
  • この投稿は、Wekidogsの「ジャンプ倉庫」という本を整理した.
  • この投稿は個人用のみです.
    これは後でポートフォリオとして使う整理資料ですので、不合格や無断盗用はしないでください.
    個人学習の目的のためだけに使いましょう