From 2dacad5014194210faee7d990bc3d9e3bb80c407 Mon Sep 17 00:00:00 2001 From: Juho Date: Thu, 3 Aug 2023 16:57:06 +0900 Subject: [PATCH] 'FEAT:03-03' --- .idea/misc.xml | 3 ++ .idea/vcs.xml | 6 +++ Exer/__init__.py | 0 Exer/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 141 bytes Exer/__pycache__/admin.cpython-310.pyc | Bin 0 -> 182 bytes Exer/__pycache__/apps.cpython-310.pyc | Bin 0 -> 416 bytes Exer/__pycache__/models.cpython-310.pyc | Bin 0 -> 779 bytes Exer/__pycache__/serializers.cpython-310.pyc | Bin 0 -> 942 bytes Exer/__pycache__/urls.cpython-310.pyc | Bin 0 -> 386 bytes Exer/__pycache__/views.cpython-310.pyc | Bin 0 -> 1825 bytes Exer/admin.py | 3 ++ Exer/apps.py | 6 +++ Exer/migrations/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 152 bytes Exer/models.py | 14 ++++++ Exer/serializers.py | 12 +++++ Exer/tests.py | 3 ++ Exer/urls.py | 8 ++++ Exer/views.py | 43 ++++++++++++++++++ __pycache__/my_settings.cpython-310.pyc | Bin 0 -> 392 bytes broccoli/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 145 bytes broccoli/__pycache__/settings.cpython-310.pyc | Bin 0 -> 2202 bytes broccoli/__pycache__/urls.cpython-310.pyc | Bin 0 -> 991 bytes broccoli/__pycache__/wsgi.cpython-310.pyc | Bin 0 -> 550 bytes broccoli/settings.py | 2 + broccoli/urls.py | 3 +- my_settings.py | 4 +- 27 files changed, 104 insertions(+), 3 deletions(-) create mode 100644 .idea/vcs.xml create mode 100644 Exer/__init__.py create mode 100644 Exer/__pycache__/__init__.cpython-310.pyc create mode 100644 Exer/__pycache__/admin.cpython-310.pyc create mode 100644 Exer/__pycache__/apps.cpython-310.pyc create mode 100644 Exer/__pycache__/models.cpython-310.pyc create mode 100644 Exer/__pycache__/serializers.cpython-310.pyc create mode 100644 Exer/__pycache__/urls.cpython-310.pyc create mode 100644 Exer/__pycache__/views.cpython-310.pyc create mode 100644 Exer/admin.py create mode 100644 Exer/apps.py create mode 100644 Exer/migrations/__init__.py create mode 100644 Exer/migrations/__pycache__/__init__.cpython-310.pyc create mode 100644 Exer/models.py create mode 100644 Exer/serializers.py create mode 100644 Exer/tests.py create mode 100644 Exer/urls.py create mode 100644 Exer/views.py create mode 100644 __pycache__/my_settings.cpython-310.pyc create mode 100644 broccoli/__pycache__/__init__.cpython-310.pyc create mode 100644 broccoli/__pycache__/settings.cpython-310.pyc create mode 100644 broccoli/__pycache__/urls.cpython-310.pyc create mode 100644 broccoli/__pycache__/wsgi.cpython-310.pyc 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 0000000000000000000000000000000000000000..e7220309288540c851a56bef65157fd5d129d4b2 GIT binary patch literal 141 zcmd1j<>g`k0@vu%DIoeWh(HF6K#l_t7qb9~6oz01O-8?!3`HPe1o6ut*(#=>C_gJT zxuiJ8sVF}=IX@>;*U444v^X^>KczCpwIa1BCO$qhFS8^*Uaz3?7Kcr4eoARhsvXFr KVkRKL!Tg`k0@vu%DNaE8F^Gc(44TX@fuanW zjJH@5Q*tx&{4|-O_)@YG^V0M6lJoOQiZYXmKnAR2C}IXuVB(in>&eoAGGYei~N4A?xqg34PQHo5sJr8%i~j6f5LL8b{X004e5 BDro=! literal 0 HcmV?d00001 diff --git a/Exer/__pycache__/apps.cpython-310.pyc b/Exer/__pycache__/apps.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..eb3f624d4e6e97037e61d6b7d0256f4774ecf925 GIT binary patch literal 416 zcmYjO%}&EG3{IL1b!EGtU6Hs}VtoLF&^9!C?y9oO}}U6<9OpvF14A}X1q7)CfnB7Jrmwm=@ZT_epuq>`YsxZ^{m*7-^+*6M>8@trS#$}Vn7KJs{a55dXPR}iDGa8xYb?uUR+X&>* smE0MckVzi$eQp*De}3GZuuVV%2>n0m;L#8G@b<9t9o@%K!yX%mKOrV#ng9R* literal 0 HcmV?d00001 diff --git a/Exer/__pycache__/models.cpython-310.pyc b/Exer/__pycache__/models.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9d35f7a6eaa5f38176244d2534a46c2199808f30 GIT binary patch literal 779 zcmZuv!H&}~5Vhl^P1|%Su;K%_<*+?)Lt6W> zzJ)*Vl~aF#6XUdnWx>`w&6}}2Z^o|r{VwtA!*{R&AwL>&2SW5mX!a=r5TKeAlv7Gx z69|BPA;1(}1~-f|2;Y%3+Tl5pQr9XfP}*jm-dz!r5t{vopa`cxc%axa1PZ||wBFj}g*02SQrq1# zl#w#mE#$S(s+`vg7tORRS1v3!TJOGM{+}i&21jW26yeweP@F-)Ltt1k{MUf4YB#;d<*rFC+1yTL>`;X-v&SbSG(I{3kFy z5B`J+5M1)6tkqnZi(F~oy`y}QgX_Fn$V2?}7@zol#^qe+cEKP26@6P7B};yyt~U9) zP-WdT&pV%TP$;@wH9G$Ew)X~J2}AII(4HW~B%y;~K>dCcG`UF{x(+O5Ij@E=+Y65_ Z{nu;K|GU%0FZL6E>7UX1+Y|DH{Q~D$y1)Pc literal 0 HcmV?d00001 diff --git a/Exer/__pycache__/serializers.cpython-310.pyc b/Exer/__pycache__/serializers.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6ece76e1bfc7bf86ad5398c76b47f37b49b9caa5 GIT binary patch literal 942 zcma)5v2NQi5G6%PmR;EaoHPjv^aDI3DA274iXe#5p@^1jf&fAlnN*2nIY+x~ye41L z&0o@?f55duv(fgol|cEhd;N8L|HCS1(H=3| z+uXA>L)gx$PMIqRFdEtj5ri~->{8>@R1Q4=cu7##47<+-(@h~g*dw4-G-%l#Xfu%) wfChc7;2P*+S--Z(EdAO#Bfp*stUFWh|JRvpaI`f4J-rJS6oqFp`L$^lf)5d}?Y@+v(Jpi$Lcv7{NSqnk#3U1D61Cm-MRe)2_y*a! z>MIBZ?@+B?m@|BHIp^LH{r(Yxx=23Q4(?A4|H}qAgQKoN7-G0UC5|yh%wVK2N)i){ zIA$g%x%q0np^X7#0oez#ft)=pNbE9ajzV_}c__r4S*Oi%i}zqXW&BxnXzfk1su|ah z)6qJ35NtI%@J;A-J(j1{LJV73C~1IIT3Sqy_+<9NCCwC{^HkF1`R&ymWOh!f?sfQI z|B^RpR{Zqi<6m0@)8J8idXNv>HC$He9Z65m(DHRk$4M>daCUB_}IzG_#M{Z@+JL%fY~B)c*KO{^>CGw+S|k zjs6jSdWl9d$qP2+G3VrqLQJjLGQL&VQzv$eZx_9(8@tAL(D!1`_`PCh>c>83KQZY_ z?+ufl;;*f^kMWN5G4@RyVBD7h#({|ka&W@J-G2}P3wiB+|Lf1c=jsKz-fv3J%b8Z> zKYXbm%Z-1v^-mP!X_22Rz!^8&-XB$!=Ec_7mB*?|%10BG;U6Tozq_5$cAJf3aD<;8 zqERg7lEp&u*pdR_S@n9;<5Iptj0o}kU#ZSUUFrj^inDL$Ps6+ZsBNIC1Wk#GV> zk7(LgXgcAfc*9UUOWOEvO9w^l)z@1Vni^S^T1F|_Mm}x$1AdyeuUN>=KV62V#ts zCXi$SE{*}s3`K2|3_z9B9T#>nto=@#n;2_KAMo?F99uv(gv>0Q*fzYnjADa{j=5y- z*iyXb7Zzf(Uh@mP5=(o69%AGu5?sYu&?7?&Yum`@z!eJIRZ$thwbzzG?RRotK8A(I z_!8G@O6hZt`~3X#Pm)Pz7>5q*;6$L;2l`|To_+Gx_0V|45`2b+22FaBI*U=a({X2t%bu6I`UVF~q4xN$@VF;@66cFnoGlU}T0rG-Nu95^lbdaf zFjTX*XoKbs1{|no9PY+@fX`BL26*BZB|MGHwFS~A-oG@2p?Sv5G2=cVi}2l0g*NQO zL(|h0pEmTE>WznTlFlBNk$zG_l`SgW+&g+3OobRc8@#Nc*WSJ6ZF)d2yQcaJ@a6>q MKl}}yVSms6A5qAs*Z=?k literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..241620da4d6b847911753ffe43f767b89489587b GIT binary patch literal 152 zcmd1j<>g`k0@vu%DIoeWh(HF6K#l_t7qb9~6oz01O-8?!3`HPe1o6u{*(#=>C_gJT zxuiJ8sVF}=IX@>;*U444v^X^>KczCpwIa1BCO0#^D6u3nKd(3@K0Y%qvm`!Vub}c4 VhfQvNN@-529mvpPCLqDW004~ABeVbj literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..99b35d2bc1b94844e6d2b523af818fcb58055656 GIT binary patch literal 392 zcmYk2K~95E7=!_7OVRFJxH2(~i)tXPjiwqkrIx5M(grX_LL|Wdid5jWJgBx;@CshQ zvv`BI^%mVI>O$wwe95f-%-~v0WD335@1U^^^YI=2ODICOFxe~s46wk#3h+>ZGE`p6 zA!{)pSS(ZxrXkV_pplzL*=#!Fs6Kpab}6`1V=cD z5IUsQ2>WjIfJtWY?RK-%DATg4onLAy>kTx{LdhIP1=w**Iuywdz`f zqt(7*Dm}$e4JsPynXa17m3sHaq-#a{A1r16$eyHljQot)y%hUCjzX!YN;yFuhPfTj k9fGnfOadZL=2SS2G2{_CE!JhodI65(*uUeK{HL(`1*IZz=Kufz literal 0 HcmV?d00001 diff --git a/broccoli/__pycache__/__init__.cpython-310.pyc b/broccoli/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a83a96a779870bd57025125165288f94f10b8dd0 GIT binary patch literal 145 zcmd1j<>g`kg7&D>DIoeWh(HF6K#l_t7qb9~6oz01O-8?!3`HPe1o6ux*(#=>C_gJT zxuiJ8sVF}=IX@>;*U444v^X^>KczAz2`Uy7AD@|*SrQ+wS5SG2!zMRBr8Fni4rE#} J6OdqG005n(Ar1fl literal 0 HcmV?d00001 diff --git a/broccoli/__pycache__/settings.cpython-310.pyc b/broccoli/__pycache__/settings.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0d9d7271f482d1344f98ad824c2d8eb21d509045 GIT binary patch literal 2202 zcmb7F&vV;E6qaPgR-8CZlk^94V00@6A`dhJOou5|EG6;OwmgyCfXIwS)~=OJ^uuV^ zO`|LS1_$U3{uS;Vbmhc9zyS{BNwyP@lbHtDTCH~9``+7czkP~pwJHbKo9}-|f7Cec z&-`WnD#Ocjxan`uAkO9xkA#2^1zX_rekmx~B`jd^NB-xfU%1oqY1yve(y3%iNVJ!I z&aV0#T6)9VEATACa}`zW8j^4YEkELX9*HQoSb4(}9ugAM)Kf7evAsIZ5M?kk|}c&Hnn^#k14>&Q`8;h zbL9zm?*V8SCs-yC;D;_FaU{c^oe+pf0{kf?fU75rjp)-x1H~RyCNX9icyZXkQ3C)Q zEFKY$Hf9+&Ch+V8%foRH$N`~Dj)zw(aw7zRFiGTBZZO95|HMl0a4yhau)|!P&%~a~ zPP$fIO1CCiDqbA1gbb8|k#uu$bj(iDM+<|w3yv7O7-5<|SeT@kQsC(NLE^Ef$6xAfOIQQXmpDtWINM?>P*E9v$WBP0j~_}opfLa{ea z2)j_sX{U2Jm+mZvoF=Kv`J0omIj{QlAh4NX94XD>@eWg(43#D{F9|-MGyQTQ7Z)g= z&qIZGV3&A>*5(`+7cnDr-nla&dCu#L8x|1|@9fm|&OqD? z0-83aFbs#I08W!K0Dl~znc5YtI9S$nnr6#0OKNWvf_cpxI1(Nt7$>wYrXMXLUbj*Z z9*q6;<6BrJ_y;&3Ed69^n}Zdy&e^>IIcGh6vS574=nW3Dxw@EDcGcz!y{p-x);csZ zN$vHVqE|6`R?Fy`>3f&tol~FW`UT31{mjI!+R@X4g~){nMlPkGdgQ=qC#W!2`V=QB z%a<}{*d!qd++5@@Cl+y%KD#YaheRYChix4B?BvS-o7?(NG~b)%cm?qMwgBC6h!f&n zM_9tq_Lyd+zST@CP?JIXjr4;lEE*_bjBr4eUE;&pi1!E%Q2k+6aU7_&j+0eJP}2f3 zNCc>H_DXo+%nEEKIZj?zaw8}#aqtRfAGVuDcQ0GE^iHp> zTDqC7ADR2D+`ipvs<|w(WlgozJgk{LRQuL}(^F0J$T-xTmukBOlLn}%)>gaweRW@V znuewWV5_4$w$arysSgRaKKrVhmGhouL*^DBH}mM(hNkbS{kG)*vf=Et^tSdZmwX76 z6wN<7-qYjhCy5^KPCt{|yE-tB2Qj)ho=Nt2#-1{|$fU1<{BeMv!3US48Z;uex+)3l trLrWJL_u1TR>Z0xO1vOQg78-SS9~kpEw73a^u@XRZ*fx;ieFh;`VXdb_muzu literal 0 HcmV?d00001 diff --git a/broccoli/__pycache__/urls.cpython-310.pyc b/broccoli/__pycache__/urls.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..88769dd6881baea9c88e698dcc3675ceb6492beb GIT binary patch literal 991 zcmb7D&5qMB5O&gJ+s$^-K7wy)q&9&SrwUfEs4FTV4*Xm~rED6zt*bbWYzMY`;n1hy zNjUHZxpLwaI3UJpB2`F8U@6vkH2LQHK6}LZxrbnV{qT*q@Qhsy!UTj z;Y<`OwytEVnJDl|NW7FH%S6s_DaDp%I`q7E8;Wl$nU|^7R2J$M=S*oVMWw020Hd%L z_#>mARETc?g9}M9D*%okfXkewieg3S)WfhgT9;}XMMPvOB-^xDi>_TJctnfnad;VN zQL;=$rZ|H3D)MG`DF-Yy^=_&nYdAM;8_-7~eohEZ3(R;aq@H5Dl7eHtOVYAzlLwkj z{bgHk6c_HqG5`>W>)W5M1dPAil5;lxG zIxhk1f7qD%Fja{G83lhZnipAK5mv0hgr=X7X0EvNXWkftfeKuYsimU;uUado2fGf} z5gNlgl5Op{G3B4xE_1Ptz`(APZxRiz9|YbHc*!WRYBwdE6@gtl#__t}R^OjA`RM+X z-cgw`MIoF)*Z{l^PV0V>!1GCx_(97Uglfr_65ckd&yHkB7%3zjlXeu-w04ZR`t0b! zzaVKQu-Se-%%+R>IjY5VI}elV*`!i*DadZo&B(&wgypUtJmG>=IlZy~L=9nc(D35I K8uo_P;MZ^dzBADP literal 0 HcmV?d00001 diff --git a/broccoli/__pycache__/wsgi.cpython-310.pyc b/broccoli/__pycache__/wsgi.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..be5300181f9d6a7431a44926fedc8562ab1d2fb2 GIT binary patch literal 550 zcmYjP!EO^V5cN7~Qx=LqLY#e#M0P90sX_>j3i zxWSQc;RlefocIM!c#}rTNS@JnH1E9`8&6MT66|aCOMZ(8`O_qa)(*+*aO_!dl4L|i zlIkdnLTqVTwz5`4AX>J+AIY{n`awh1`a-f}NynsneEU28G#(6@Kr>ebn`6ypH41@R zv8u);2$#h1&@uR2p#{s_0@$vDYt3gG7`KeG66H!mPs18CTk~3NONN&q*>uXQN-M#g zLNlEPytjd-#2T0~fw9~c7@7dCESoD0&zJ>>7tU4oJWVAEo5&?M1@1KoEK@M)i{yE_ zz#E6Dgi7P41mn^hTc|Yt8}>m)-N-*Fz~#+dejvj?y?pm(G`Pyg{p;)DXfVz{TwQ*A z-@kplA3w3+oHB*&c6=w#gN8i!6s>=>Q<8`Un%iWG&g