Django rest framework에 모델을 만드는 방법

6745 단어 파이썬장고

1. models.py에 클래스 만들기



models.py
from django.db import models
class Character(models.Model):
    character = models.CharField(max_length=60)
    age = models.CharField(max_length=60)
    def __str__(self):
        return self.character

2.terminal에서 command 실행



(env) qiita  mysite % python manage.py makemigrations
Did you rename character.first to character.age (a CharField)? [y/N] y
Did you rename character.last to character.character (a CharField)? [y/N] y
Migrations for 'myapi':
  myapi/migrations/0003_auto_*********.py
    - Rename field first on character to age
    - Rename field last on character to character
(env) qiita mysite % python manage.py migrate       
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, myapi, sessions
Running migrations:
  Applying myapi.0003_auto_********... OK

이 전에 다른 field를 삭제하고 있었으므로, 이러한 내용이 되어 있지만 python manage.py makemigrations,python manage.py migrate를 실행해 ok가 나오면 문제 없다.

3.admin.py에서 character 설정



admin.py
from django.contrib import admin
from .models import Character

admin.site.register(Character)

이 코드를 추가하면 python manage.py runserver를 실행합니다.
1.2.3의 단계를 수행함으로써 장고 재구성 프레임 워크에 문자가 추가됩니다.


4.serializers.py 만들기



serializers.py
class CharacterSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = Character
        fields = ('id', 'character', 'age')

serializers.py라는 파일을 새로 준비합니다. 여기서는 필드에 Character가 가질 수 있는 요소를 추가할 수 있다. 이번에는 id,character,age를 설정했다. 왜 serializers.py를 만드는가 하면 Django rest framework에 데이터를 전달할 때 json으로 변환해야하기 때문이다.
* 이번 기사에서는 json을 건드리지 않기로 한다

5.views.py&urls.py 설정



views.py
from rest_framework import viewsets

from .serializers import CharacterSerializer
from .models import Character

class CharacterViewSet(viewsets.ModelViewSet):
    queryset = Character.objects.all().order_by('character')
    serializer_class = CharacterSerializer

urls.py/mysite
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('myapi.urls')),
]

urls.py/myapi
from django.urls import include, path
from rest_framework import routers
from . import views

router = routers.DefaultRouter()
router.register(r'characters', views.CharacterViewSet)


# Wire up our API using automatic URL routing.
# Additionally, we include login URLs for the browsable API.
urlpatterns = [
    path('', include(router.urls)),
    path('api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]

views.py urls.pyd에서 설정을 수행하여 화면에 데이터를 표시 할 수 있습니다.
*url.py는 2개이므로 주의
*rest_framework를 설정하지 않았다면 미리 두는 것이 좋습니다.

python manage.py runserver 실행

url에 characters의 url이 설정되어 있는 것을 확인할 수 있다.

7. 실제로 character를 추가해 본다






Character list 안에 데이터가 추가되었습니다. 이렇게 추가할 수 있는 경우에, model 창조는 완료이다.

요약



이번에는 Django rest framework에 model을 추가했습니다. model 추가의 주의점으로서는, urls.py가 2개 있기 (위해)때문에 혼합하지 않는 것, command의 치는 것을 잊는다고 생각한다. 또한 rest_framework를 설정하지 않으면 움직이지 않으므로 그 점도 충분히 확인이 필요하다.

좋은 웹페이지 즐겨찾기