우선 Django로 User를 만들고 user를 확인하고 삽입할 수 있는 백엔드 앱을 추가해 보도록 하겠습니다.
$python manage.py startapp user
를 해주고 기초적인 작업을 위한 틀을 구축해 주도록 하겠습니다.
/fastcampus/user/models.py
from django.db import models
class User(models.Model):
user_name = models.CharField(max_length=20)
user_type = models.IntegerField() # 0: 사용자, 1: 사장님, 2: 배달 기사
일단 모델을 만들고 마이그레이션 해주겠습니다.
$python manage.py makemigrations
$python manage.py migrate
/fastcampus/user/serializers.py
from rest_framework import serializers
from user.models import User
class UserSerailizer(serializers.ModelSerializer):
class Meta:
model = User
fields = '__all__'
/fastcampus/fastcampus/urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('order/', include('order.urls')),
path('admin/', admin.site.urls),
path('boss/', include('boss.urls')),
path('delivery/', include('delivery.urls')),
path('api-auth/', include('rest_framework.urls', namespace='rest_framework')),
path('user/', include('user.urls')),
]
/fastcampus/user/urls.py
from django.urls import path
from user import views
urlpatterns = [
path('user/', views.user, name="user"),
]
/fastcampus/user/views.py
from django.utils import timezone
from django.shortcuts import render
from django.http import HttpResponse, JsonResponse
from user.serializers import UserSerailizer
from user.models import User
from django.views.decorators.csrf import csrf_exempt
from rest_framework.parsers import JSONParser
# Shop객체들을 다 serialize한 결과를 json으로 parsing해서 json형태로 이를 반응하겠다
@csrf_exempt
def user(request):
if request.method == 'GET':
shop = User.objects.all()
return render(request, 'user/user_list.html', {'user_list': shop})
elif request.method == 'POST':
data = JSONParser().parse(request)
serializer = UserSerailizer(data=data)
if serializer.is_valid():
serializer.save()
return JsonResponse(serializer.data, status=201)
return JsonResponse(serializer.errors, status=400)
/fastcampus/user/templates/user/user_list.html
{% for user in user_list %}
<h5>{{ user.user_name }}</h5>
<h5>{{ user.user_type }}</h5>
{% endfor %}
/fastcampus/fastcampus/settings.py
...
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'order',
'boss',
'delivery',
'user',
'rest_framework',
]
...
이제 한번 postman으로 값을 추가해 보도록 하겠습니다.
user모델에는 user_name, user_type이 있는데 0은 사용자, 1은 사장님, 2는 배달기사로 정했습니다. 그리고 각 역할별로 값을 임의로 추가해보도록 하겠습니다. post요청으로 이를 다 해서 값을 삽입했다면 get요청을 통해서 값이 잘 삽입되었는지 확인해 보도록 하겠습니다.
다음과 같이 잘 확인됩니다.