From 456551cd4ebca048ee42271855e9e76794789775 Mon Sep 17 00:00:00 2001 From: "afanasyev.aa" Date: Fri, 4 Apr 2025 18:46:13 +0900 Subject: [PATCH] added dockerfile, requirements.txt, docker-compose.yml --- Dockerfile | 20 +++++++++++++++++ api/__pycache__/__init__.cpython-311.pyc | Bin 0 -> 129 bytes api/__pycache__/admin.cpython-311.pyc | Bin 0 -> 536 bytes api/__pycache__/apps.cpython-311.pyc | Bin 0 -> 494 bytes api/__pycache__/models.cpython-311.pyc | Bin 0 -> 2006 bytes api/__pycache__/serializers.cpython-311.pyc | Bin 0 -> 837 bytes api/__pycache__/urls.cpython-311.pyc | Bin 0 -> 847 bytes api/__pycache__/urls.cpython-313.pyc | Bin 622 -> 734 bytes api/__pycache__/views.cpython-311.pyc | Bin 0 -> 5146 bytes api/__pycache__/views.cpython-313.pyc | Bin 4290 -> 4563 bytes .../__pycache__/0001_initial.cpython-311.pyc | Bin 0 -> 995 bytes ...userprediction_delete_todo.cpython-311.pyc | Bin 0 -> 2221 bytes .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 140 bytes api/urls.py | 2 +- db.sqlite3 | Bin 163840 -> 176128 bytes docker-compose.yml | 21 ++++++++++++++++++ requirements.txt | 6 +++++ testapi/__pycache__/__init__.cpython-311.pyc | Bin 0 -> 133 bytes testapi/__pycache__/settings.cpython-311.pyc | Bin 0 -> 2906 bytes testapi/__pycache__/settings.cpython-313.pyc | Bin 2920 -> 2851 bytes testapi/__pycache__/urls.cpython-311.pyc | Bin 0 -> 1508 bytes testapi/__pycache__/urls.cpython-313.pyc | Bin 1386 -> 1386 bytes testapi/__pycache__/wsgi.cpython-311.pyc | Bin 0 -> 655 bytes testapi/settings.py | 16 ++++++++----- 24 files changed, 58 insertions(+), 7 deletions(-) create mode 100644 Dockerfile create mode 100644 api/__pycache__/__init__.cpython-311.pyc create mode 100644 api/__pycache__/admin.cpython-311.pyc create mode 100644 api/__pycache__/apps.cpython-311.pyc create mode 100644 api/__pycache__/models.cpython-311.pyc create mode 100644 api/__pycache__/serializers.cpython-311.pyc create mode 100644 api/__pycache__/urls.cpython-311.pyc create mode 100644 api/__pycache__/views.cpython-311.pyc create mode 100644 api/migrations/__pycache__/0001_initial.cpython-311.pyc create mode 100644 api/migrations/__pycache__/0002_prediction_user_userprediction_delete_todo.cpython-311.pyc create mode 100644 api/migrations/__pycache__/__init__.cpython-311.pyc create mode 100644 docker-compose.yml create mode 100644 requirements.txt create mode 100644 testapi/__pycache__/__init__.cpython-311.pyc create mode 100644 testapi/__pycache__/settings.cpython-311.pyc create mode 100644 testapi/__pycache__/urls.cpython-311.pyc create mode 100644 testapi/__pycache__/wsgi.cpython-311.pyc diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..d3a85fe --- /dev/null +++ b/Dockerfile @@ -0,0 +1,20 @@ +# Базовый образ +FROM python:3.11 + +# Устанавливаем рабочую директорию внутри контейнера +WORKDIR /app + +# Копируем зависимости +COPY requirements.txt . + +# Устанавливаем зависимости +RUN pip install --no-cache-dir -r requirements.txt + +# Копируем все файлы проекта +COPY . . + +# Открываем порт (опционально, если хочешь) +EXPOSE 8000 + +# Запускаем сервер +CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"] diff --git a/api/__pycache__/__init__.cpython-311.pyc b/api/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d42bfeef78b1afb1c410569b98f4257a2123df21 GIT binary patch literal 129 zcmZ3^%ge<81Oaa@rGx0lAOZ#$p^VRLK*n^26oz01O-8?!3`I;p{%4TnFA@F3f&w7U x)Q^wP%*!l^kJl@x{Ka9Do1apelWJGQ3RDC#rkEc{d|+l|Wc0u)|o$bSm>QMh1q}Knwvy>0u#54=cK!6qaBHP1ctnYc&~f zu_mVEX6C&FxkHor7E5SxYSAsOfTGlt%;b{H{JdLyAQ1%LPm|*oUrJVDUV6S>a(-S( zQD#yRC~R)A<>sfP<`fsP0y#w>zZZeLeT$_yvn2HvM^S2eW^qYs(MpETKv9NYg8GRC z1wfps54K*fpz;@o4bX(roK(9aexM4Fdx~p;#0O?ZM#dWq3Kvk(0|t`|xX}X!))ubo z48oTfgeSOMWRSeVAbEj7@&=Nq*F^^TD-7}%803*f{Vp;nUtv(b07FH*Ko6GoFK7|e6OF5!&Bc0RK{iG56oIt7h)ubju2T>2rNtk z!fhdLQyEm5ZRNN!4aPzuUAP5br`$6vX{?p8C!+|}C!bi+T}-PejE*4bp_%-gMQ?wu zcNZ;VazZEWtZN4*&sx>k)F`GUm95%@io#7qtNKAX>S1hPNV`eS(d3*lwt(IF@0)LE SY%7PqX4?3q*ROw4#b@7=jdn2r literal 0 HcmV?d00001 diff --git a/api/__pycache__/models.cpython-311.pyc b/api/__pycache__/models.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..19fbe5d9c3f2d16b8cc0099a917624a6a3186e28 GIT binary patch literal 2006 zcmbVNJ#5=X6h2amqUh%N~TH1ns-Jbf}-4 zNEGfQpdB=1@DLy!Gr2M1!9!bg=-8p71aJ^;?bJ>-?8#H!BSR^Y9i!--`RU!=yZ7GR z``-Cy!_Wz|U!8xq^aLS);~;M8YvJSx2+s&5RB}lje`Qx{$aPsFGWnd)#E*n3Ox}k5 zQQHIQd|C~Fxnd@j%RPUtXfEmv}HBz2D2=oTNZ@oyC`QZ>#=XU(F(_l5!%|?7v+k>Tq+dbcc@Si zi$ZqjJ~_d#&aU3J+im!q+tC>p+B+PN76P85Qvm3W`cS*k%LUqv=k&1r%kp2>``XGt zTM4w4?x)!K)p+m4m-Qzs|NqMhFEyV^qf|+R^gcBeMw|(-)mXT)_0aoDKIA;j|;L; zn!f7_b;GrrkE(?kjy1tC5}rlCjBx{D24NQA3V<-mw#RBtgGHItH#vg|YT2I9{Wgtd zZFzO28mS~X>mX}%U@ePOxrz3|>|8_XdJHKLI^P5QryLK>`Q2P#&L0;0=HkFy49vyu zayzl=aSq#h~Od2

w$4|VB89fTiwb?sdxx#rGZ%r%u;t5dlVK%G(j2#Ca|4g zlHNudrb4}qD(pa-N>(aNXl#kF^rhMneZsd29aF5=NrGj<_d|jAL!I)JrAeSgO3Yv- zkEsD1&{|C^N<@w4!0f~!WA2_{YQ~48QawRsFqk;IHfeC-0rPBRlMjA`-X4*#T2Q7a zC1(Am^VnyW*V=L1!KxZ^v>v&7H7^@ z^Gg;z9wK%B-s=5(<{9?IVS7vEM1Bo>braaOkvhLzX2R2BuN^Q zOgHR9lJ8IcLA=sK2?D+ldv~6cAaGcN$j2HHtiI?#EHg?OTD*fKiKwUTje!(LZadSG(`qEnUqf)O<~e!U%cyEv2W|G3-g zez6`M!_46xiq6&%zCC@z##-MWzI;C@M?av?EaMilig4KU%pw^}1dVFhydtgKwL;oV z1#}hJF2bZh!MVRzz;k$@wZ|zAmzZ)AD~m`_E>8?HbI~!M4Lunflni8!j->;lV{(P= zIQ1irXLlW=dxq|kUR3rGp%9F*A#4olV+iYm`Y1fXu#M;Nedo{HcMs%voZ>Be`3sr7 B$L|0D literal 0 HcmV?d00001 diff --git a/api/__pycache__/urls.cpython-311.pyc b/api/__pycache__/urls.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..dd5424cdf89f4458662662cfd152414daa4e0b6a GIT binary patch literal 847 zcmZ`$OK;Oa5MIaYI1i!{D98suD58f{D3PKl2MAFmDsgF1BP0&aAu`=1b>o-T4i!E1 z$Uop81o8MMT-K5g(O$XGQzP}(6SFpHQmGlwu4X=e^Udz;w@Rgiz*;{pMi&Y~e`K;S z{eN)z7lN;dAfhI%vsst^r!^|-K*n?mq& zksy-)rB78rU}bh)gV)v+ZmlUorM9-FbZbqS>eC!_hn3j~n?-Wx9jaH(B~Vuc4y@?t z9EO7Gs@ObWl-P%n?R&2owIcf7rYGXw65X@ID8*KoyVRi>6XdG?hsd(Mp*4w)hLJy} zo+t;`qM@iBrn4POHY<4FTo4g3dJy9iT!xidjKJCsIeB!flLmoI)X=HTyphCC8p-e>? z5+0W7;Ido_a3SB0+YlZiun>>&{3OvB%>%~eHFX6O;W=`+;l z>wSj0{HD+INGqQ0etFD|HaDIpMmsh-iP7P&4mj?|xS!zu3>Pv+iyPaC(Ta^W@c7F; zj`w4{pWywJ!HZ9Mt;cJfq}GdTJ4tPazcD!;#CVY4K_+7G`_E#$mEf&;QQOF!mF34a H;XeNWnjP&u literal 0 HcmV?d00001 diff --git a/api/__pycache__/urls.cpython-313.pyc b/api/__pycache__/urls.cpython-313.pyc index 39809bb3ed20a09b58b0dfa079d4117db2e9c595..a73920cb56c44c42dd3526242c7f1809a15f87ca 100644 GIT binary patch delta 266 zcmaFIa*vhwGcPX}0}z-leV_h$BCjOliHYi}V!;f-EZ%Hh>_zMf3^9yK48g21%s~PZ z*U9p;1+!Z+Lxor%LL6`*&KOp(kSrHmh&zVelnG=31A{(G5obD&Chx=>A)=a$w*>Q( zN)j{k;uA|tGU7|}vs3dX>o6wsS8*j4Wa@+Y`hJ>RlP581D#{h57MH}Q6(#1Tmgg5` z>w&a@Rp^yvrj{2MaZKLM=piQtw1W|di?e~m2WCb_#=8tM_Zb2&G6ddbu$e5y<(R}7;PLoiDWa}dwOK3RU&U^Yu;s1OT8 zh#fA(5yJ`=;^hPh=`$Cxr*mm?Py7-xIhHY**-w*W@_9zh$+Ao?(jq`>7=gGr7D#+x hW@Kc%%OG=~A@CwY;N*HH51tR~Ec{H3+(kk_X#fMSBBTHS diff --git a/api/__pycache__/views.cpython-311.pyc b/api/__pycache__/views.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7f2680f3eb9e682409e525cb59520c04a13349f6 GIT binary patch literal 5146 zcmbVQZ*1Gf6+eoUM9H$5NVa7qX{;n}8pW}cwrqI6pr;$9D z=JKAjhr?%&#^;5!z}md#&HK_m))q8>UQCP7_R2mjkPoJV`L=XhK9mlzKEKwU??`vB zv7#pBx1_hQc0k*j-YN$_Bk8b*oF;PHXG9JuzFRyYx8ZV1I>LDE!0Xt+>ts9$cw08` zx)^Wk<}&5L7)gYm;1UUs?bD5{F{9h!gi=tbn$r`UEnZOc>0&`wpzR+y_r|-bGK<}Y znpftE1?35cb9p;>jw-U6Gt^?i7JjNL)b2p)_QIr2_h}5|XEk+Bq0leAp^wZMA1MVx z&1DTm9?hZ9TJb>x)$sHWK;S^QGG{dKC+qDJS0Z;jw>+RWxSUe5;h2 z#S=bTq{_!Lif-sOKcN_Qn{!&3Tv1kRVNwUh2VTFNQ>L9WFqF$if~OM5v&9dyx{{fp z8p?2vQ^(hj$K&5`g*{9=`+%d>lhar1?I1ogT|dvvI4$NghO;HQ9p<6;=E4kSePqmn4SqKoL%^h88F}||5aCi?fLhgt@Lid+_1{%bAkp*LG ztxZVD*St@alf8F*&F+-*yaxza_WjZ~wtk=GX31s#Ju=G~VOLgzRv6N{9H&+C-tjlD zR`wg+?x_DdpD+3Eh|PQBNaMR1F;`ltWi9u_oA&?~6d1MrGk{weRR*W@sB#k&;WuxmH?{dY7f%#lxo5Tao%LsefKr^O0?19O!lF@SS5T z{l}O4k5~GKt^Q%?s>Ci>u?zDZYXToQx*9)vZ?qDB(~7@ohMt4^-Kx~HM!3LHm#jv% zFZ}Fxxusn<#&3?BI|lCN%*c^S+-Q#b~BYB6{$VTGK$Ei8E>ZJzB z{|WTN?!mvM>c$4huV)a~K-&KY`9C5|Y=HS6F^6vkptA4-p+%_cqoH9mKx+eFZaNmi zP)mSVM6GNnvbT9hCB7ucJ^*Wwdb=*U>}`VD#vlTzZ!0iQ)^n(4*$i$O1lS=5DrA;w zxKDaFPDQV*!;S-UxL=yWWqso+NT3YD?6yl;4f3yy1~$g9j)59Y!oY-&zKoLw zk;IV!|bwJ+(iuSKWQ_IoR-Hu9h*oqF%hc@qh3=q=2Z>2l6+?`sD?6M+>mB_*6$iaJ2GjgyJ z8L=WGE0MRCBX2({Rw5r*kq@dn_F?VavlbxHgWnKuH24h3eA~AnvZV)+<^6kx*>kGW zbIQW{MnyVnNq|6SnJWW;(AQw|^azrpNFqr3khoZJ93PQjNY(cNad5)HiZ<_?+#1=O zIzn*j{|p!nA0nriZ7|5dXjm&4%JBIqe69gxK(1Bez}@}iSZvHJ>m$I~T60F;z`S$4 zOx7Lg7WBBE8znwd|C}iCn>%RpjOLt2_Q<^2vho;#EU>mP+$S-5vI6;FcguW1_CnT& z?hfzeener`H%4lCUP2tj)M$Fj_OCnEMVbJKbAi#K5g#wk6lC>F&>GzjorwU;1(-KE z=Z|`@`9g8l4!V8`c|rD);v^8EQ$a1h^hOq@R**)h@!F?sh%fq%$zKsRxqi!iX&f!@MCB#1p5 z9LVp*Ep1L62g0d8#(@-mf=dfB2dM2~!F@F0ZFTT=kY$Ib6`EId9sUW(j}aT?in+6*XgU<5@u|_DReuPZ8FhqcR&(oKzM+BWVT4BSn5jA4D4t#Ckc=24-3bd zI$OAx@FSNZ4BH`jGFzA^CgEdT(%Oy2 zQ418$)Jcum%QBc_N7aXnI{tkx9&-|_A^HI@Fx$~7P%sXTtCD_mvsxtw%;s7p`^@HA zCA-Y#S|x+#57#OgFq>wA*` literal 0 HcmV?d00001 diff --git a/api/__pycache__/views.cpython-313.pyc b/api/__pycache__/views.cpython-313.pyc index 8c1e868580309afd83278774402164c0d20f01ad..f1db0f683f9d77e5fd340401b83e176d919fcc6c 100644 GIT binary patch delta 1058 zcmaJr1eJNE*d4zH$q6;31g0NFDjid=0Al{VrQm@ipGBXW{8#acO zM(dd9%8eTr#)VD%0q%5ROxT#4Xh>Y)f{ox-&zWjLLY(A&bMoDD&V1jTdDpek6Z#Pf z1r=C7-)xtE)k7WRLp^J(U5V0YM#(Grz;rup&j-^AjU83GmAsZ#@@)(1up4U>g~lZt z0yeylO-MEZY;+%+lx+LK4&{Iz+rnnL%TXCG@EWUstHyQWL@u+b8oy;$xm7H1v(%U& zvxG#%OV_;j7!(AB-~Eat#HPQa@zFi!%EVC;+HrjL;%&3Ynd7y%Sz#2@X-ZsDN7OD1 z`@}uY@ zAprsN0jw*#u88+yGpAG3{W;Rt*z^lRx&#k)13nEdYf^Ini**s!`sex~)Kz*4nLz}p zcM_v107qM)X2~jY%dRq}0@IY<6oJj0)U{T|Rg3Xi%Um5Sn>;HXX|Ly{V3eMNLq=hz zXA#aJj3G!p=P^29a2z>=KKPg)01ay1Y0`8!4i3k}bGIhGwrOOj@x4ta*&ax{8_3x_ zvt-w*CF==+CcQxF0opVTF^!9{@Nnmz`)!8cYK=$+)pZ3l($KrgsMSPGA(z zq%j2fv}IR0A?fqq(K-GL6}wbhHYaEiDqsW(n-g~Qg!_v!BJM{Aj_fFYGD&t4gbX|z K-Bn8aUk5Z4~dz)CRhy(N4$9LwjsOlGCCbE) zi5gERhsvPe?a)@!o*?!pI33BwH|rB!OrHKTBi<*Cj2FQ Qk}lyeecd<{8jKJB2?jZWh5!Hn diff --git a/api/migrations/__pycache__/0001_initial.cpython-311.pyc b/api/migrations/__pycache__/0001_initial.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..dd819741b9c14954defd28efd1c103f55a6caedd GIT binary patch literal 995 zcmZuvzfaph6uz?^Cw2@<5LK$E3ay}3lYt*AMOA6D>E zN0tiyf>aez)sa7;qmf(*-GtPM%?Ku@zH0;$)3S<3=K zzqvD#%#Crm1jYd(h+qe`v5wn%o#L=ccSVy;>E)wYts%Fl4xGFHU zZCkz>+MXLQx$P0^1dY*7{!f#E|K)d32Z$ma6Qm0S>!O8pNkBByk~xqI5r_yY*;a1o z!wQBWk<38uOOOW4p)>`OO_9oIh2#cG9|H#FEk;c-qZ|;C2Kj$6mN?M*K-3Y;p;%bY zlQAfAoGBZl>b97)f_;%a$_l$RRk0}B5ZPT$o zQl{-vf7=VF;hJsAGNBzh^qjy=RSe{r9}I`OR=C5IhS%;m6pn&Gme8izbwVImO83c4 zn>r-etZFQ0q(>PBQw;+c?>ZE0%`o0~O^1WQ%i69TLIO-9v_oA&-G)sApLdbvSJR9) zc&~g;DAQJKYZ+=;<99G+b;tCFrncgF4mI7Or+OWF)9P>Nl5=%EJ!f`0Fzva&&tPtT zetyBYNnp0K=kxZaiW|WfP`%r6Ha^i?Pb54k_g*JCq)dHQ<6PymSUM}-i%PZq-MCac zmVVAex)Hg4R0>W?L0k%=LU>xdAC+r|PvUazM?5$Qb4$Y>Jol%;<&Q6T3n~#Y#)*t@H9}ACeu-Sba)R!veKju3T=2lvf1>HV Fe*oYD1TO#p literal 0 HcmV?d00001 diff --git a/api/migrations/__pycache__/0002_prediction_user_userprediction_delete_todo.cpython-311.pyc b/api/migrations/__pycache__/0002_prediction_user_userprediction_delete_todo.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f5a17168c41c18a97a7cf1cca682fe99c14fc6da GIT binary patch literal 2221 zcmbVNy>Ht_6hBfFEmE>9IZhbWO=zb^Q#pv^G)>ynK>>e6L7c=bU^{5l00iwjDYPY0 zA*B?_kcM0Z?&r%zWTe1 z-5*4bfrS3Sw@?+z2@!#(7$u;=d`DjEiw%&}niBI^!bvQ(G#k#C_qJFbjMS zC)=q_0d!zS19X%lI_eRfbf}Y#Pi+G8B3>Y{k@>d`@YKHvQN4f}jfz-JwzG%#;MBnw z2aXeCRrn99xvterj0AE8*~0nu;IZ;`B8)Y@J4CW;1F_{^Wvu1)_wq4^huS9(#}Ao1 zb!=oUf+e)yJ6xM#rU&OISpdvVo52`9{k#WItV zla~$4wwjh%W9nBf!PY7-YbIK_v{aN>A0`#ERco>oh??d~jj(jXwd$t(#8@X!nBox^ z&RS0iQ&(MLHVHP&W>H`nv(==wZPHS6j$RM8)(_qqZTomPL(tt61OP2qukF~AjO2MasD*- z+2=H(1|cmu*eMF3XrVa7Qbq{FFqmo>&^%f-0({0W9<|IG2gp~LG>DCfy=oE9<&B7? zXT$W~LijW^NU|DL~Lfps!qebL@TxA zxWua3cin)yMP3}EnPAj z4Vc!YUT3@n#r3h#%dNrl7m@>eQKliA*qLZNad`s{NeUS6cj#st`%fSvWh6+5L-NMm zKt+oFqw1&5?&Qz>kv~bb^Uogp+WD8#D|LIBe*J(xtW(YIXtuA}H0OX8)vr8%?CV#y zhp1la=p|n-(cG;Af~_U0&vf(|U!S45*`0iW4qteF%^$wd8NTQbU!=K-gUVyupg!Nx z=Y4&i=I#V(c_2{{tkC4QwR24Iq1*1eu?4|IG>dOb$V z2DM$Pc^%F3HIL?+2LQe!%t;>q>H#$$QQht6uCKc^=k4S*S{Q$R z$}fz+y#MMO|LRTu>VkjuKK+)^LZwrv_=O71RRbjnK(i=+j*fj!KbQjGC$m95&4B~i z<0LrU1FnGrmjT)1B$yf*lsD%2<9-(3c(IQaq9UBYD-+S5>O@?L?q#la0SHs}mBQ~L z{1l?P`IPH~_O1i>HgzNVxV~_2z>@zldh0-fgdhk|OTs8cBhhaMr8mN72Yp1}^$X+= W1vx-R$urf@jlJQ5y?01MF#iAoWJTBj literal 0 HcmV?d00001 diff --git a/api/migrations/__pycache__/__init__.cpython-311.pyc b/api/migrations/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..54b62c5b1b3034659dde4df0b0d0a0c553a43ac6 GIT binary patch literal 140 zcmZ3^%ge<81Oaa@rGx0lAOZ#$p^VRLK*n^26oz01O-8?!3`I;p{%4TnFM0jMf&w7U z)X&XKFG?)Q%+D*)=dU}j`w{J;Ps IikN|70MyYQ6#xJL literal 0 HcmV?d00001 diff --git a/api/urls.py b/api/urls.py index 248713c..c256ed2 100644 --- a/api/urls.py +++ b/api/urls.py @@ -6,5 +6,5 @@ urlpatterns = [ path('predictions', PredictionCreateView.as_view(), name='create_prediction'), path('predictions', PredictionListView.as_view(), name='get_predictions'), path('predictions/', PredictionDeleteView.as_view(), name='delete_prediction'), - path('api/token/', obtain_auth_token), + path('token/', obtain_auth_token), ] diff --git a/db.sqlite3 b/db.sqlite3 index 5be43ec85a075149993c2d6f0f0c5c999240687c..a39dc9f3abc4a71954b5fbc7318f15502339b92d 100644 GIT binary patch delta 1464 zcmZux-*4Mg6!vMHIJWP6v;J7R{vdX$s&$++wv#s7+G@?JteY5RK^+1#k$S7eqK2eo zVWSUQIw4-R2@M%3PcZ0TFcgU(LV#VMvHhLz ze){e?$6j0G)*f&-`u8dnMb)qEWA=@343zg4Z({G@9s>5V_btXJd$|htG&jiJuWG)x z*>bAaO$FwX#>=I1rNXkAS5-BhF>)odm}$JP6brAcW(q5%Y$1PMSM~9T8Yicy9y}CF z9MTVrX|cq?SS;ZuGD?d~%ptJ*!nm%L#}Dr#D<@l4>KS6EkkM6bLe=$&jFyNec305U zi39N-A~4({pk=c8Y$XU`e=7utz7XcMIfA<84DY%DFc=@G={JQgM#N#=K~wYmx_BtIPCov!K( zr=eiT<~R-2Ion=>_3aJFgcKOzn_lXSrj64zMViH&O#9HM=oWelT}KyD2F)Rj zbmcBz?x8_}_8O{w8lv$3qD5`oX{j;oW8E~!fSN8EV8lm*1dbYnJ82k(mQ5=|Hs(|e zVHyIkvn9Fu^=a+AOBEhk%vWh2#+bz};UD1-;dkL@;UU?^B|&w&0FWJ{jpwmOjMO6^ zZbYRKLyag`d%oLRbnT_KD$EQ>9poOGfzK+pb70X|MhBSMGcUp-)P6hy{euZI-hOI> z!f_$HCyAE%O zPb=2P{J>CSatGxL*^m$Ir zA5Wi3S(0Z89t8#v-cR9Q@HhAi{1Lv1ui{I11wV_A oVjb@%t$HLx{D`IkQq#-MkD!w$34d#%c619qys^IKTmMb`7xg%-vH$=8 delta 339 zcmZp8z}3*eH9=ZXm4Sgl1BhY3X`+rXqw2Kv3*`L zV-nBw_YRDcSr`}?Q?|D`GA1x?*GXdZU}WUl%=mySU_18##-H*MT>Nef{BQYh@}J`0 c!#|(Di@%n?fIpJo4d`4g{_Sq>8Fx(p0Mqea;Q#;t diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..aebbcfe --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,21 @@ +version: '3.9' + +services: + web: + build: . + command: python manage.py runserver 0.0.0.0:8000 + ports: + - "8000:8000" + volumes: + - .:/app + depends_on: + - db + + db: + image: postgres:14 + environment: + POSTGRES_DB: testapi + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + ports: + - "5432:5432" diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..6aae030 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,6 @@ +Django>=4.0,<5.0 +djangorestframework +djangorestframework-simplejwt +psycopg2-binary +drf-spectacular +requests \ No newline at end of file diff --git a/testapi/__pycache__/__init__.cpython-311.pyc b/testapi/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e5a3d9db1ccc23c9e02a6d28d33c94bb5de4556e GIT binary patch literal 133 zcmZ3^%ge<81UmOGrGx0lAOZ#$p^VRLK*n^26oz01O-8?!3`I;p{%4TnFA4p`f&%@L z)Z&uFf=vDR_{_Y_lK6PNg34bUHo5sJr8%i~MXW%DAft-;fy4)9Mn=XD3^1aI87Kw- Dwyqm7 literal 0 HcmV?d00001 diff --git a/testapi/__pycache__/settings.cpython-311.pyc b/testapi/__pycache__/settings.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9fd7f242f73ce49c66fc89d349495e43892770c6 GIT binary patch literal 2906 zcmb7G%a7aC8b8kaJ()CZL!rGcMNBhg98Dj*>AjxBGmV-Tv8M%ZEKkmv#4~#$oy=;vUvxDxZhZ@}3Wc+eV?#>Jd{HcczjN@EaYa0jUlK3i zOZep>g=2z;vO_SvcTBJ0sm_LsHASaE)N|A{Y)?1vov66|l4@?t&N8M#~YDk!>524jnC=;n3( zQ+@QNc2s?I+mvtWH{DyND&2Yg>P`2x1A8=*58ttFJ^J8ybNr5l*KPHxP|djInHgqa z=#HiAG1H>D=ayH;;PK_9#XyDVj&p1h+r7BNw25s)nV)57z>tTaacNn@fsGji+hKbJ z3tB+hw`7eR8P=g&`RkmKAs)v#B)YePt$oQhp-tq$Sd}d=3Y}9;x*K!rnu4)Pj%154 z(>f{6F~bK1gF*Y0=iXipW*$Bh(&uMuA+74OPM}jXLucyK*WZZR);?1Q@<1U+AaGl?jT};3PGV8&uyT7={*cz2&q+d628Rdo;1IyXe6$^GL)Q#YV~6x| zbC@z?OSRqF+=@dqQw5|ld!SBqyg(Aun1WWAvu&?5ZJ$pa2{1N*pbX2d#@y@6W}cN| zFxeXq-Srocw8$rbILEy)mpyIrprX&Q98}u9wIqC6#pft2c-5Gf++yqZxlY52HJW|i zOR>G4G#w?oJ)zm{@NQ*Mup@h@FtTYvm8V9^amXz<1B>%< zHR2_>&Q7z#d9e=L=Bxso4DP+9z^8p<%C-#$`ZJjH<}scb_|JMfS%y(^1Vc2~H^ zb%bV}4Vr4k<#_MXg5Tr%?IzEMc%5p+OG*-a)g;MFn(*yVl|3s89pj}WDL8L~b%@bW z9}zEM!cnO^UTTZwxuAi)4A0g3oFLujKK9}bZfkeP%d@Rk_aWDi?sa*A_X^DpFTfHk zK-cqLrrm5bTHHgn&w06iw<}1y{Z_r(+4j-`*Y34g0U|CwzTNQ>!AKAx zasjGT54?M&MS;L_SK4lJt%g_VbG#sJ_W?oR=Kgo+x8Mu=N2LbXtj)oC`u%0h<3CdG zL)(m1a@X1b!QkJSJp}4UDT?wV87k(ZfK(9m(i2n(-+lt+il5#7GWGf0FYf-7z54&` z)gQ9gehlvQAG4d2lwUxFJ~hdJU^+jEpA<`zyr0RIB0gG>Nx{FAD!{^mfOHuZuS{}& z3Y9tPX|eRQTsg_nK8jx}gh(`5&iLtEJmI5&L<{-IB<<6v%sfFw{|bs1o|c%W#md+3 z|4>}>#E0g?5ZgrAA z$*xRNCy-pi&!NIa2tI=@+)eIS!U@Uw0}!T$v8 C4a$}P literal 0 HcmV?d00001 diff --git a/testapi/__pycache__/settings.cpython-313.pyc b/testapi/__pycache__/settings.cpython-313.pyc index 6f91e0b3aaf596ce3464af8e6d2eecacdfd34160..4edb2ac65f0bb47a9cb3500356c288d3ab7e8275 100644 GIT binary patch delta 258 zcmaDMwpdL4GcPX}0}!aMe4p+wz`*br#DM`eDC6^=iRvpOV%UQDb-5WBf(7)L3>b^} zg9U?y3>bl=FqjkplcENU`Yc5P!D2;%!Qw?i!7N3>Kr9k0Q6w5HStJ%L6)dgK7%T(C zvUna~2*kyTlP$P9W#t%H`ECg5-4KwNVRKPH{Ua;0 Y0NV#)US6gK&JS9XpK{f+Xaf}k0BA})>i_@% delta 337 zcmZ21_CiekGcPX}0}#Y*dY68hpMl{qhyw#0P{!wf6V+En1@i|B1PcZW1q%m@=&>0v z7V!s*28$Um0!eW&DFG%W4H)%ViUfkCiUfnDi-dw%iiCk!Bv__MG+4GsELbjBUY{{o z0f-g#n2W^Il{A$%YcPti*2|`3CFZ5)>!l>=B_$?jr{<*;>lNe|m!ub^78mB+VoNDX zODxE|#Q_t$#bRh=Y;g{1{7cf;$n@-zc@Qp_!wCE uZU`CP5RkYbAaz4T>V|;y4FR!_yzByOADB6LnHo4hC{13#RnKAq)B^xieOoF3 diff --git a/testapi/__pycache__/urls.cpython-311.pyc b/testapi/__pycache__/urls.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4f2347b35629a686573ad8f150dedb562190ca41 GIT binary patch literal 1508 zcmb7E&x_ke6dq~EzvOJTDUH{(1g0d5S7j@a#erbbme5VM3#F89w+CMwt!8Y?=od3` z)A&$w>~Rl)_8;h$vi$?{C*&xD4vQ{1^wd)gx#iS1BRTPg6xz{fc=P7d_rCXLM!&7E z8wlE+U;iE*Vub#blVxj^#tWn&^fRKUkEljA0Q!B~I&4WQO9#-W$r{BDH%m*~bJGT(821fj;!H(wGr3Wwfk%ALfE zLNbgvNtj5S*dsBICd^GN!}xa0$b%{OV<$-%55)uGdm(pN6iItimeNn-;lCDRDyL1#!fa9w9>>1tfShaN@Xh7BUrnx5Uc~ zWCAN0!l#hzc)QctDf1df0ox&=6R=M@((ahX=e{Gv$H$NuU19w<6;U!~Tne$2;-#D~ zfb0LLk$B4y14*)NzM<$Kbp0vy!Vwff#gnPY9bVSwKoy376xbe#W!okhmZj_!-U5$25(<wfnp}yJLd8(=FOE-aromPUXkvrln)2u zwf17ec~t^x5`cx5KoD8syjJdI-ds6;zoQp`LoeU6;k?-8g;ZC-iXXkK-w7f*_1UL< z6F~C6BA&yrSkp9Zp>Jq-f#g7t_F;<1YClI?>D&4_>ZTX_Il7%*?29U@G#>B$)IPcO zr1#{rIli9Z>*u%*uGY!s$>uNb&#&CbuH2a8tqgA!3)j;2Zrc7RYwyn6-K^bxdOO8? zbG(<~y#nw-+UlmQovhV;I!;^r^VWXW+J81o@zER~W%y{(sBGwuoATjTA;*6J1n#-+ literal 0 HcmV?d00001 diff --git a/testapi/__pycache__/urls.cpython-313.pyc b/testapi/__pycache__/urls.cpython-313.pyc index 6930a4dc6369d6b1b558fe44e13c960204310f2c..37a389d8de256698321c78904dcbaf611296a214 100644 GIT binary patch delta 20 acmaFG^@@x8GcPX}0}$9OeZP@Ao)rK>(FOYe delta 20 acmaFG^@@x8GcPX}0}zyEz1qkf&k6uS-J2sm4aOC-8m4!u-Wr4neAstt!wwaR6)T~9WSyzAB4gu;nK z{{z>as4D(UKuAb?X{4Tdi^Ppnz4?&R8GFVv_RM>>{Bw2H0VBJ=Z=*{B@TUmoQkpFu zdS-D64BEg5vjk}q<85KZcH1U^q(46iKbGdji=LI((v<~pZRS)6Sb+AG39jcUXfHFX z1=Z#Ad*^ej-k_mOx;&y?nNf{O2Pvm%Ci@s_*Krz};PR8;qnP74Adg0BK;plCp2 z$xZ}57dSvc2SLUsTS*Wjqn%EWrhQlSoy|dD-_31>estsq(cc z5jQma-J)$~8=$<5$$)1v$sJS3up68Rov$n){(^^s(c^|^lHLqu!qrXB9-q9PzTlgz zVh)+V0qTn}W1A2%w#uY5hQh1^aW0+~I)c67|6>H!cjq29Z((z|