[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개의 댓글

관련 채용 정보