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', } }