Pada modul ini kita akan mulai membuat django app dan model untuk menyimpan data articles.
Masuk ke direktotri project (pada project adalah djangoAPI), lalu jalankan perintah berikut untuk membuat app, pada tutorial digunakan nama app backend.
$ python manage.py startapp backend
Kemudian buka file backend/models.py, buat model Article menggunakan code berikut:
from django.db import models # Create your models here. class Article (models.Model): title = models.CharField(max_length=200) description = models.TextField() slug = models.SlugField(max_length=200) published = models.DateTimeField(auto_now_add=True) def __str__(self): return self.title
Kemudian buka file djangoAPI/settings.py, tambahkan backend pada variable INSTALLED_APPS.
""" Django settings for djangoAPI project. Generated by 'django-admin startproject' using Django 4.2.3. For more information on this file, see https://docs.djangoproject.com/en/4.2/topics/settings/ For the full list of settings and their values, see https://docs.djangoproject.com/en/4.2/ref/settings/ """ from pathlib import Path # Build paths inside the project like this: BASE_DIR / 'subdir'. BASE_DIR = Path(__file__).resolve().parent.parent # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/4.2/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! SECRET_KEY = 'django-insecure-**r$fu9jcmqjd0mz6zoo1jxfu@du1lud4pb5mcu)4n#$bmwuuu' # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True ALLOWED_HOSTS = [] # Application definition INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'rest_framework', 'backend' ] MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ] ROOT_URLCONF = 'djangoAPI.urls' TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ] WSGI_APPLICATION = 'djangoAPI.wsgi.application' # Database # https://docs.djangoproject.com/en/4.2/ref/settings/#databases DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': BASE_DIR / 'db.sqlite3', } } # Password validation # https://docs.djangoproject.com/en/4.2/ref/settings/#auth-password-validators AUTH_PASSWORD_VALIDATORS = [ { 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', }, { 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', }, { 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', }, { 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', }, ] # Internationalization # https://docs.djangoproject.com/en/4.2/topics/i18n/ LANGUAGE_CODE = 'en-us' TIME_ZONE = 'UTC' USE_I18N = True USE_TZ = True # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/4.2/howto/static-files/ STATIC_URL = 'static/' # Default primary key field type # https://docs.djangoproject.com/en/4.2/ref/settings/#default-auto-field DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
Kemudian pada terminal, jalankan perintah makemigrations.
$ python manage.py makemigrations
Akan menampilkan log seperti berikut:
Migrations for 'backend':
backend\migrations\0001_initial.py
- Create model Article
Selanjutnya lakukan migrate untuk membuat model kedalam database
$ python manage.py migrate
Akan mengembalikan log seperti berikut:
Operations to perform:
Apply all migrations: admin, auth, backend, contenttypes, sessions
Running migrations:
Applying backend.0001_initial... OK
Sampai disini kita sudah membuat app dan model. Pada modul selanjutnya kita akan membuat admin superuser yang akan digunakan pada tutorial modul authentication.