volkantash / django-101

Adım adım django öğrenmeye başlayın.
MIT License
3 stars 0 forks source link

Django 102.3: Modelleri etkinleştirmek #22

Open volkantash opened 1 year ago

volkantash commented 1 year ago

Buraya dek tasarladığımız modellerimizi models.py altında yazdık. Şimdi bu modelleri etkinleştirmenin sırası.

  1. Uygulamamızı projeye katalım. Bunun için ilk_projem/settings.py dosyasını açıyoruz.
  2. Ağıllı uygulamalarımızın tanıtıldığı dizmeyi buluyoruz. Bu dizmenin adı INSTALLED_APPS olarak geçmektedir.
  3. Ağıllı uygulamalarımızın arasına uygulamamız ile bağ kurulması için uygulamıza erişmeli. Onun içinde bulunan apps.py dosyasına erişmeli. Oradan da uygulamamızın bağlanması için bilgileri barındıran sınıfa erişmeli. Bunun için şunları yazıyoruz
    "ilk_uygulamam.apps.İlkUygulamamConfig",
  4. Sonuçta şöyle bir dizme yazmış olacağız.
    INSTALLED_APPS = [
    "ilk_uygulamam.apps.İlkUygulamamConfig",
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    ]
  5. Artık Python'a veritabanını kur diyebiliriz:
    py Manage.py makemigrations ilk_uygulamam
  6. Şuna benzer bir çıktı görmüş iseniz işler yolunda demektir.
    Migrations for 'ilk_uygulamam':
    polls/migrations/0001_initial.py
    - Create model Plaka
    - Create model Araba
  7. Modellerde bir değişiklik yaptığınızda "makemigrations" komutuno yine işletip veritabanını güncelleyeceksiniz. Şimdilik bir değişiklik yapmadığımız için bu adımı atmıyoruz. Veritabanında yaptığımız işlemlerin izini sürmek için uygulamamızın içinde bulunda migrations dizinindeki 0001_initial.py dosyasına bakabilirsiniz. Bu dosyalar ile işimiz yok. Bizim için bir bilgilendirmedir. Gelin deneyip görelim. Aşağıdaki komutu işletelim.
py manage.py sqlmigrate ilk_uygulamam 0001
  1. Bir önceki adımda işlettiğimiz komutun sonucunda şunun gibi bir çıktı göreceğiz.
    
    BEGIN;
    --
    -- Create model Plaka
    --
    CREATE TABLE "plaka_plaka" (
    "id" bigint NOT NULL PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY,
    "question_text" varchar(200) NOT NULL,
    "pub_date" timestamp with time zone NOT NULL
    );
    --
    -- Create model Choice
    --
    CREATE TABLE "polls_choice" (
    "id" bigint NOT NULL PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY,
    "choice_text" varchar(200) NOT NULL,
    "votes" integer NOT NULL,
    "question_id" bigint NOT NULL
    );
    ALTER TABLE "polls_choice"
    ADD CONSTRAINT "polls_choice_question_id_c5b4b260_fk_polls_question_id"
    FOREIGN KEY ("question_id")
    REFERENCES "polls_question" ("id")
    DEFERRABLE INITIALLY DEFERRED;
    CREATE INDEX "polls_choice_question_id_c5b4b260" ON "polls_choice" ("question_id");

COMMIT;