진행순서
1. user에 관한 model구현 및 DB 마이그레이션
2. request, response 처리를 위한 User Serializer구현
1. user에 관한 model 구현 및 DB 마이그레이션
api_user/models.py 에 user에 필요한 데이터들을 Model을 상속하는 User class에 만들어 준다.
models.py에 User class를 통해 User를 추상화 했다면 DB에 테이블의 형태로 User 테이블을 만들어 주어야 한다.
1
2
3
4
5
6
7
8
9
10
11
12
|
from django.db import models
# Create your models here.
class User(models.Model):
user_id = models.CharField(max_length=128, null=False)
password = models.CharField(max_length=128, null=False)
address = models.CharField(max_length=256, null=True)
class Meta:
db_table = "User" #Table이름을 "User"로 정한다 default 이름은 api_user_user가 된다.
|
cs |
models.py에 User class를 통해 User를 추상화 했다면 DB에 테이블을 만들어 주어야 한다.
장고에는 커맨드를 통해 간단한 명령어로 연동 된 DB table을 만들어 준다.
마이그레이션할 내용들을 만들고
$ python manage.py makemigrations
DB에 table생성 및 수정 반영한다.
$ python manage.py migrate 명령어로 DB에 migrate한다.
migrate가 완료되면 프로젝트내에 db.sqlite3파일이 생겨있는데 터미널로 확인해 보면 아래와 같이 User table이 만들어진것을 확인 할 수 있다.
sqlite> .schema User CREATE TABLE IF NOT EXISTS "User" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "password" varchar(128) NOT NULL, "address" varchar(256) NULL, "user_id" varchar(128) NOT NULL); |
*장고의 default DB는 sqlite3이며 settings.py에서 설정을 변경하여 mySQL, Postgresql등 다른 DB로 연동할 수 있다.
2. request, response 처리를 위한 User Serializer구현
django REST framework에서 제공하는 serializer를 활용하여 request로 받은 data를 역직렬화 하여 DB에 반영하고 reponse로 사용 될 data를 다시 직렬화하여 json이나 xml등으로 손쉽게 변환이 가능하다.
![](https://blog.kakaocdn.net/dn/piJh7/btqBRwvZdpl/SAW9D1dZubZVX2QVbbF9Y0/img.png)
또한 django의 ORM을 이용하여 코드레벨에서 손쉽게 DB에 접근할 수 있다.
api_user/serializers.py를 만들고 아래와 같이 User에 대한 serializer를 구현해 준다.
1
2
3
4
5
6
7
8
9
|
from rest_framework import serializers
from .models import User
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = '__all__'
# 모델 User의 모든 field를 serializer함.
|
cs |
'Python > Django' 카테고리의 다른 글
[Django] [웹 기초] HTTP 기초 (0) | 2020.08.02 |
---|---|
[Django] [웹 기초] 웹 프로그래밍이란 (0) | 2020.07.25 |
[Django] 간단한 REST API 서버 만들기4 - Class Based View에서 POST, GET, PUT, DELETE 구현 (0) | 2020.02.10 |
[Django] 간단한 REST API 서버 만들기2 - http Request에 대한Response 전달 (2) | 2020.02.05 |
[Django] 간단한 REST API 서버 만들기1 - 개발 환경설정 (0) | 2020.02.04 |