Skip to content

Commit cb01824

Browse files
committed
Init Music REST API with DRF
django REST Framework 로 12장 예제를 공부하기 위한 간이 REST API 생성 완료.
1 parent 58274cf commit cb01824

File tree

16 files changed

+288
-0
lines changed

16 files changed

+288
-0
lines changed

music_api/.gitignore

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
media
2+
*.pyc
3+
*~
4+
__pycache__
5+
myvenv
6+
db.sqlite3
7+
/static
8+
.DS_Store

music_api/manage.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#!/usr/bin/env python
2+
import os
3+
import sys
4+
5+
if __name__ == '__main__':
6+
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'music_api.settings')
7+
try:
8+
from django.core.management import execute_from_command_line
9+
except ImportError as exc:
10+
raise ImportError(
11+
"Couldn't import Django. Are you sure it's installed and "
12+
"available on your PYTHONPATH environment variable? Did you "
13+
"forget to activate a virtual environment?"
14+
) from exc
15+
execute_from_command_line(sys.argv)

music_api/music/__init__.py

Whitespace-only changes.

music_api/music/admin.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
from django.contrib import admin
2+
3+
# Register your models here.

music_api/music/apps.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
from django.apps import AppConfig
2+
3+
4+
class MusicConfig(AppConfig):
5+
name = 'music'
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Generated by Django 2.1.2 on 2019-03-30 05:38
2+
3+
from django.db import migrations, models
4+
import django.db.models.deletion
5+
6+
7+
class Migration(migrations.Migration):
8+
9+
initial = True
10+
11+
dependencies = [
12+
]
13+
14+
operations = [
15+
migrations.CreateModel(
16+
name='Genre',
17+
fields=[
18+
('id', models.AutoField(primary_key=True, serialize=False)),
19+
('name', models.CharField(default='', max_length=20)),
20+
],
21+
),
22+
migrations.CreateModel(
23+
name='Music',
24+
fields=[
25+
('id', models.AutoField(primary_key=True, serialize=False)),
26+
('title', models.CharField(default='', max_length=100)),
27+
('singer', models.CharField(default='', max_length=100)),
28+
('year', models.IntegerField(default=1900)),
29+
('genre', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='music.Genre')),
30+
],
31+
),
32+
]

music_api/music/migrations/__init__.py

Whitespace-only changes.

music_api/music/models.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
from django.db import models
2+
3+
class Genre(models.Model) :
4+
id = models.AutoField(primary_key=True)
5+
name = models.CharField(max_length=20, null=False, default='')
6+
7+
class Music(models.Model) :
8+
id = models.AutoField(primary_key=True)
9+
title = models.CharField(max_length=100, null=False, default='')
10+
singer = models.CharField(max_length=100, null=False, default='')
11+
year = models.IntegerField(null=False, default=1900)
12+
genre = models.ForeignKey(Genre, on_delete=models.CASCADE)

music_api/music/serializers.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
from rest_framework import serializers
2+
from .models import Music, Genre
3+
4+
class MusicSerializer(serializers.ModelSerializer) :
5+
class Meta :
6+
model = Music
7+
fields = ('id', 'title', 'singer', 'year', 'genre',)
8+
9+
class GenreSerializer(serializers.ModelSerializer) :
10+
class Meta :
11+
model = Genre
12+
fields = ('id', 'name',)

music_api/music/tests.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
from django.test import TestCase
2+
3+
# Create your tests here.

0 commit comments

Comments
 (0)