먼저 가상 환경에 필요한 모듈을 설치하겠습니다.
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
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
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
from django.contrib import admin
from .models import Poll, Choice
admin.site.register(Poll)
admin.site.register(Choice)