[drf | agiliq] Setup, Models and Admin

Hyeseong·2021년 2월 20일
0

설정, 모델 및 관리자

먼저 가상 환경에 필요한 모듈을 설치하겠습니다.

python -m venv venv
pip install django
pip install djangorestframework

프로젝트 생성

django-admin startproject pollsapi

디랙토리 구조

manage.py

pollsapi/
    __init__.py
    settings.py
    urls.py
    wsgi.py

DB 설정

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

DB 빌드

python manage.py migrate

모델 생성

데이터베이스 모델을 만들기 전에 pollsapi 앱을 만들어 보겠습니다.

python manage.py startapp polls

pollsapi/models.py

from django.db import models
from django.contrib.auth.models import User


class Poll(models.Model):
    question = models.CharField(max_length=100)
    created_by = models.ForeignKey(User, on_delete=models.CASCADE)
    pub_date = models.DateTimeField(auto_now=True)

    def __str__(self):
        return self.question


class Choice(models.Model):
    poll = models.ForeignKey(Poll, related_name='choices', on_delete=models.CASCADE)
    choice_text = models.CharField(max_length=100)

    def __str__(self):
        return self.choice_text


class Vote(models.Model):
    choice = models.ForeignKey(Choice, related_name='votes', on_delete=models.CASCADE)
    poll = models.ForeignKey(Poll, on_delete=models.CASCADE)
    voted_by = models.ForeignKey(User, on_delete=models.CASCADE)

    class Meta:
        unique_together = ("poll", "voted_by")

앱 등록 및 마이그레이팅

INSTALLED_APPS = (
...
'rest_framework',
'polls',
)

$ python manage.py makemigrations polls
$ python manage.py migrate

polls앱에 빈 urls.py 생성

urlpatterns = [
]

pollsapi/urls.py URL로 이동하여 아래와 같이 작성할게요.

from django.urls import include, path

urlpatterns = [
    path('', include('polls.urls')),
]

Server start

python manage.py runserver

Admin page 설정

from django.contrib import admin

from .models import Poll, Choice

admin.site.register(Poll)
admin.site.register(Choice)
profile
어제보다 오늘 그리고 오늘 보다 내일...

0개의 댓글