diff --git a/.idea/misc.xml b/.idea/misc.xml
index d77dc93..eb3e4c0 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,4 +1,7 @@
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Exer/__init__.py b/Exer/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/Exer/__pycache__/__init__.cpython-310.pyc b/Exer/__pycache__/__init__.cpython-310.pyc
new file mode 100644
index 0000000..e722030
Binary files /dev/null and b/Exer/__pycache__/__init__.cpython-310.pyc differ
diff --git a/Exer/__pycache__/admin.cpython-310.pyc b/Exer/__pycache__/admin.cpython-310.pyc
new file mode 100644
index 0000000..64ed9c7
Binary files /dev/null and b/Exer/__pycache__/admin.cpython-310.pyc differ
diff --git a/Exer/__pycache__/apps.cpython-310.pyc b/Exer/__pycache__/apps.cpython-310.pyc
new file mode 100644
index 0000000..eb3f624
Binary files /dev/null and b/Exer/__pycache__/apps.cpython-310.pyc differ
diff --git a/Exer/__pycache__/models.cpython-310.pyc b/Exer/__pycache__/models.cpython-310.pyc
new file mode 100644
index 0000000..9d35f7a
Binary files /dev/null and b/Exer/__pycache__/models.cpython-310.pyc differ
diff --git a/Exer/__pycache__/serializers.cpython-310.pyc b/Exer/__pycache__/serializers.cpython-310.pyc
new file mode 100644
index 0000000..6ece76e
Binary files /dev/null and b/Exer/__pycache__/serializers.cpython-310.pyc differ
diff --git a/Exer/__pycache__/urls.cpython-310.pyc b/Exer/__pycache__/urls.cpython-310.pyc
new file mode 100644
index 0000000..9afba1a
Binary files /dev/null and b/Exer/__pycache__/urls.cpython-310.pyc differ
diff --git a/Exer/__pycache__/views.cpython-310.pyc b/Exer/__pycache__/views.cpython-310.pyc
new file mode 100644
index 0000000..829a861
Binary files /dev/null and b/Exer/__pycache__/views.cpython-310.pyc differ
diff --git a/Exer/admin.py b/Exer/admin.py
new file mode 100644
index 0000000..8c38f3f
--- /dev/null
+++ b/Exer/admin.py
@@ -0,0 +1,3 @@
+from django.contrib import admin
+
+# Register your models here.
diff --git a/Exer/apps.py b/Exer/apps.py
new file mode 100644
index 0000000..7a853ef
--- /dev/null
+++ b/Exer/apps.py
@@ -0,0 +1,6 @@
+from django.apps import AppConfig
+
+
+class ExerConfig(AppConfig):
+ default_auto_field = 'django.db.models.BigAutoField'
+ name = 'Exer'
diff --git a/Exer/migrations/__init__.py b/Exer/migrations/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/Exer/migrations/__pycache__/__init__.cpython-310.pyc b/Exer/migrations/__pycache__/__init__.cpython-310.pyc
new file mode 100644
index 0000000..241620d
Binary files /dev/null and b/Exer/migrations/__pycache__/__init__.cpython-310.pyc differ
diff --git a/Exer/models.py b/Exer/models.py
new file mode 100644
index 0000000..edd53bb
--- /dev/null
+++ b/Exer/models.py
@@ -0,0 +1,14 @@
+from django.db import models
+
+# Create your models here.
+class Exercise(models.Model):
+ exercise_id = models.IntegerField(primary_key=True)
+ usebody_id = models.ForeignKey('Usebody', on_delete=models.CASCADE, max_length=11)
+ exerciseName_English= models.CharField(max_length=50, blank=True, null=True)
+ exerciseName_Korean = models.CharField(max_length=50, blank=True, null=True)
+ equipment_name = models.CharField(max_length=50, blank=True, null=True)
+ videolink = models.CharField(max_length=150, blank=True, null=True)
+
+ class Meta:
+ managed = False
+ db_table = 'exercise'
diff --git a/Exer/serializers.py b/Exer/serializers.py
new file mode 100644
index 0000000..f73aba0
--- /dev/null
+++ b/Exer/serializers.py
@@ -0,0 +1,12 @@
+from rest_framework import serializers
+from .models import Exercise
+
+class ExerciseDetailSerializer(serializers.ModelSerializer):
+ class Meta:
+ model = Exercise
+ fields = ['exerciseName_English', 'exerciseName_Korean', 'equipment_name', 'videolink']
+
+class ExerciseSerializer(serializers.ModelSerializer):
+ class Meta:
+ model = Exercise
+ fields = ['usebody_id', 'exerciseName_English', 'exerciseName_Korean']
diff --git a/Exer/tests.py b/Exer/tests.py
new file mode 100644
index 0000000..7ce503c
--- /dev/null
+++ b/Exer/tests.py
@@ -0,0 +1,3 @@
+from django.test import TestCase
+
+# Create your tests here.
diff --git a/Exer/urls.py b/Exer/urls.py
new file mode 100644
index 0000000..377a655
--- /dev/null
+++ b/Exer/urls.py
@@ -0,0 +1,8 @@
+from django.urls import path
+from . import views
+
+urlpatterns = [
+ path('', views.ExerciseSearchAPIView.as_view()),
+ path('/', views.ExerciseDetailAPIView.as_view()),
+ path('body//', views.ExerciseBodyAPIiew.as_view()),
+]
\ No newline at end of file
diff --git a/Exer/views.py b/Exer/views.py
new file mode 100644
index 0000000..5196bb3
--- /dev/null
+++ b/Exer/views.py
@@ -0,0 +1,43 @@
+from rest_framework.views import APIView
+from rest_framework.response import Response
+
+from Exer.models import Exercise
+from Exer.serializers import ExerciseSerializer
+from Exer.serializers import ExerciseDetailSerializer
+from django.shortcuts import get_object_or_404
+
+
+#03-01 부위별 운동 간단 조회
+#usebody의 id 대신 name이 나오게 하려면 model을 수정해야 할 것으로 보임
+class ExerciseBodyAPIiew(APIView):
+ def get_object(self,pk):
+ return Exercise.objects.filter(usebody_id=pk)
+
+ def get(self,request,pk):
+ exercise = self.get_object(pk)
+ serializer = ExerciseSerializer(exercise)
+ return Response(serializer.data)
+
+
+#03-02 운동 상세 조회
+class ExerciseDetailAPIView(APIView):
+ def get_object(self, pk):
+ return get_object_or_404(Exercise, pk=pk)
+
+ def get(self, request,pk):
+ exercise = self.get_object(pk)
+ serializer = ExerciseDetailSerializer(exercise)
+ return Response(serializer.data)
+
+#03-03 운동 검색
+class ExerciseSearchAPIView(APIView):
+ def post(self,request):
+ data = request.data
+
+ exercise = Exercise.objects.filter(exerciseName_Korean=data)
+ serializer = ExerciseSerializer(exercise)
+
+ if serializer.is_valid():
+ return Response(serializer.data)
+ return Response(serializer.errors)
+
diff --git a/__pycache__/my_settings.cpython-310.pyc b/__pycache__/my_settings.cpython-310.pyc
new file mode 100644
index 0000000..99b35d2
Binary files /dev/null and b/__pycache__/my_settings.cpython-310.pyc differ
diff --git a/broccoli/__pycache__/__init__.cpython-310.pyc b/broccoli/__pycache__/__init__.cpython-310.pyc
new file mode 100644
index 0000000..a83a96a
Binary files /dev/null and b/broccoli/__pycache__/__init__.cpython-310.pyc differ
diff --git a/broccoli/__pycache__/settings.cpython-310.pyc b/broccoli/__pycache__/settings.cpython-310.pyc
new file mode 100644
index 0000000..0d9d727
Binary files /dev/null and b/broccoli/__pycache__/settings.cpython-310.pyc differ
diff --git a/broccoli/__pycache__/urls.cpython-310.pyc b/broccoli/__pycache__/urls.cpython-310.pyc
new file mode 100644
index 0000000..88769dd
Binary files /dev/null and b/broccoli/__pycache__/urls.cpython-310.pyc differ
diff --git a/broccoli/__pycache__/wsgi.cpython-310.pyc b/broccoli/__pycache__/wsgi.cpython-310.pyc
new file mode 100644
index 0000000..be53001
Binary files /dev/null and b/broccoli/__pycache__/wsgi.cpython-310.pyc differ
diff --git a/broccoli/settings.py b/broccoli/settings.py
index afdee9d..c64685c 100644
--- a/broccoli/settings.py
+++ b/broccoli/settings.py
@@ -40,6 +40,8 @@
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
+ 'rest_framework',
+ 'Exer.apps.ExerConfig',
]
MIDDLEWARE = [
diff --git a/broccoli/urls.py b/broccoli/urls.py
index adf9fe5..8ecf5d3 100644
--- a/broccoli/urls.py
+++ b/broccoli/urls.py
@@ -15,8 +15,9 @@
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
"""
from django.contrib import admin
-from django.urls import path
+from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
+ path('exercise/', include('Exer.urls')),
]
diff --git a/my_settings.py b/my_settings.py
index 891b4dd..8519ed8 100644
--- a/my_settings.py
+++ b/my_settings.py
@@ -4,9 +4,9 @@
'ENGINE': 'django.db.backends.mysql',
'NAME': 'bibim',
'USER': 'root',
- 'PASSWORD': '1234',
+ 'PASSWORD': 'apolonlee9',
'HOST': 'localhost',
- 'PORT': '3306',
+ 'PORT': '3308',
}
}