DRF 5

[DRF] Serializer๋กœ ์—ญ์ฐธ์กฐ์˜ ์—ญ์ฐธ์กฐ ๋ชจ๋ธ ๊ฐ€์ ธ์˜ค๊ธฐ

https://stein-log.tistory.com/27 Django foreign key๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ ์—ญ์ฐธ์กฐ(DRF) ๊ฒฐ๋ก ๋ถ€ํ„ฐ ๋งํ•˜์ž๋ฉด ์ฐธ์กฐํ•˜๋Š” ๋ชจ๋ธ(ohlcv)๊ณผ ์ฐธ์กฐ๋˜๋Š” ๋ชจ๋ธ(share_announce)๊ฐ€ ์žˆ์„ ๋•Œ, ์ฐธ์กฐ๋˜๋Š” ๋ชจ๋ธ.์ฐธ์กฐํ•˜๋Š”๋ชจ๋ธ_set์œผ๋กœ ์ ‘๊ทผ๊ฐ€๋Šฅํ•˜๋‹ค. ์ด๋•Œ, ์ฐธ์กฐํ•˜๋Š” ๋ชจ๋ธ foreign key ์„ค์ •์‹œ related_name์„ ์„ค์ •ํ•ด์ฃผ stein-log.tistory.com ์ง€๋‚œ ๊ฒŒ์‹œ๊ธ€์—์„œ๋Š” 1๋Ž์Šค ์—ญ์ฐธ์กฐ ํ•„๋“œ๋ฅผ ์–ด๋–ป๊ฒŒ ๊ฐ€์ ธ์˜ค๋Š”์ง€ ์•Œ์•„๋ณด์•˜๋‹ค. ์ด๋ฒˆ์— ๋งŒ๋‚œ ๋ฌธ์ œ๋Š” ๋ถ€๋ชจ ๋ชจ๋ธ์„ ์ฐธ์กฐํ•˜๋Š” ์ž์‹ ๋ชจ๋ธ์„ ์ฐธ์กฐํ•˜๋Š” ์†์ž ๋ชจ๋ธ์„ ๋ถ€๋ชจ ๋ชจ๋ธ์˜ serializer์—์„œ ์ฐธ์กฐํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. (๋ณต์žก๋„ ํ•˜๋‹ค...) ์•„๋งˆ ์ด๋ ‡๊ฒŒ ๊นŒ์ง€ ๋Ž์Šค๊ฐ€ ์žˆ๋Š”๊ฑธ ๊ตณ์ด serializer์—์„œ ํ•ด์•ผํ•˜๋‚˜ ์‹ถ์ง€๋งŒ, ํ•ด๋‹น ser..

Programming/Django 2021.10.22

[DRF] get_queryset์—์„œ ๋ฒ—์–ด๋‚˜๊ธฐ(get ์‚ฌ์šฉ)

drf์—์„œ api๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ, ํ•„์ž๋Š” get_queryset์„ ๋ฉ”์ธ์œผ๋กœ ํ•˜์—ฌ api๋ฅผ ๊ตฌ์„ฑํ•˜์˜€๋‹ค. get_queryset์„ ์‚ฌ์šฉํ•˜๋Š”๊ฑด ์•„๋ž˜์˜ docs๋ฅผ ์ฐธ๊ณ ํ•˜๊ณ  ์ง„ํ–‰ํ•˜์˜€๋‹ค. https://www.django-rest-framework.org/#quickstart Home - Django REST framework www.django-rest-framework.org https://www.django-rest-framework.org/api-guide/filtering/ Filtering - Django REST framework www.django-rest-framework.org ๋‹ค๋งŒ ์ด๋ ‡๊ฒŒ get_queryset๋งŒ ์‚ฌ์šฉํ•˜๋ฉด ๊ฒฐ๋ก ์ ์œผ๋กœ [sql๋กœ ํ•  ์ˆ˜ ์žˆ๋Š”๊ฒƒ + serializer์˜ ๋ณด์กฐ] ๋งŒ์„ ์‚ฌ..

Programming/Django 2021.10.15

Django foreign key๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ ์—ญ์ฐธ์กฐ(DRF)

๊ฒฐ๋ก ๋ถ€ํ„ฐ ๋งํ•˜์ž๋ฉด ์ฐธ์กฐํ•˜๋Š” ๋ชจ๋ธ(ohlcv)๊ณผ ์ฐธ์กฐ๋˜๋Š” ๋ชจ๋ธ(share_announce)๊ฐ€ ์žˆ์„ ๋•Œ, ์ฐธ์กฐ๋˜๋Š” ๋ชจ๋ธ.์ฐธ์กฐํ•˜๋Š”๋ชจ๋ธ_set์œผ๋กœ ์ ‘๊ทผ๊ฐ€๋Šฅํ•˜๋‹ค. ์ด๋•Œ, ์ฐธ์กฐํ•˜๋Š” ๋ชจ๋ธ foreign key ์„ค์ •์‹œ related_name์„ ์„ค์ •ํ•ด์ฃผ๋ฉด ํ•ด๋‹น ์ด๋ฆ„์œผ๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.(ํ•„์ž๋Š” ohlcv๋กœ ์„ค์ •) ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ.. django๊ฐ€ ์•Œ์•„์„œ ํ•ด์ค€๋‹ค. ๊ตฌ๊ธ€๋ง์„ ํ–ˆ์„ ๋•Œ, ์ •์ฐธ์กฐ๋ฅผ ํ•  ๋•Œ๋Š” select_related๋ฅผ ์—ญ์ฐธ์กฐ๋ฅผ ํ•  ๋•Œ๋Š” prefetch_related๋ฅผ ์“ฐ๋ผ๋Š” ์–˜๊ธฐ๋ฅผ ๋ณด์•˜๋‹ค. ํ•˜์ง€๋งŒ ๋‘ ๋ฐฉ์‹ ๋ชจ๋‘ cache์— ๋ฏธ๋ฆฌ ๋‹ด์•„๋‘ฌ์„œ, db์— ํ•œ ๋ฒˆ ๋” ์ฟผ๋ฆฌ๋ฅผ ๋ณด๋‚ด์ง€ ์•Š๊ฒŒ ํ•ด์ฃผ๋„๋ก supportํ•˜๋Š” ์—ญํ• ์ด์ง€, ํ•ด๋‹น function์„ ์“ด๋‹ค๊ณ  ํ•ด์„œ return๋˜๋Š” query_set์— ํ•ด๋‹น ๋‚ด์šฉ์ด ๋‹ด๊ฒจ์ ธ์žˆ๋Š”๊ฒŒ ์•„๋‹ˆ๋‹ค. ..

Programming/Django 2021.10.15

210914 - DRF, RL(openai gym ๊ฒŒ์‹œ๊ธ€ ์ถ”์ฒœ), ๊ทธ๋ฆผ

DRF๋ฅผ ์„ฑ๊ณตํ–ˆ๋‹ค. auth๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ด€๋ฆฌ๋˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ์„ค์ •์„ ํ•˜์ง€ ์•Š์œผ๋ฉด ์•ˆ๋˜๋”๋ผ. ๊ทธ๋ž˜๋„ views.py, urls.py ๊ทธ๋ฆฌ๊ณ  serializer๊นŒ์ง€ (๋‹คํ–‰ํžˆ) ์–ด๋Š์ •๋„ ์ดํ•ด๋„๊ฐ€ ์ƒ์Šนํ–ˆ๋‹ค. ์ด์ œ ๋””์ž์ธ ์‹œ์•ˆ๋ฐ›๊ณ , ํ”„๋ก ํŠธ-๋ฐฑ์—”๋“œ ์™”๋‹ค๊ฐ”๋‹ค ํ•˜๋ฉด์„œ ๋ฐ์ดํ„ฐ๋„ ๋„ฃ์–ด๋ณด๋ฉด django ์‹ค์Šต์€ ์ž์—ฐ์Šค๋ž˜ ๋Š˜ ์ˆ˜ ์žˆ์„ ๋“ฏํ•˜๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์˜ค๋Š˜ RL์„ ์œ„ํ•ด์„œ open ai gym์„ colab์—์„œ ์ญ‰ ๋Œ๋ ค๋ดค๋‹ค. ์—ญ์‹œ env.render()๊ฐ€ ๋ฌธ์ œ์˜€๋‹ค. ์ด ๋ถ€๋ถ„์€ ๊ทธ๋ƒฅ window์—์„œ๋งŒ ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š”๊ฒŒ(display๊ฐ€ ์žˆ์œผ๋ฉด ๋œ๋‹ค) ๋ง˜ ํŽธํ• ๋“ฏ. ์ฐธ๊ณ ํ•œ ์ฝ”๋“œ https://www.anyscale.com/blog/an-introduction-to-reinforcement-learning-with-openai-gym-r..

Life 2021.09.14

docker compose๋ฅผ ์ด์šฉํ•ด์„œ ํ•œ ๋ฒˆ์— ์„œ๋ฒ„ ๊ตฌ์ถ•ํ•˜๊ธฐ (3) DRF ๋ฐ nginx ์„ค์ •

DRF๋Š” django์—์„œ restful api๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ํŽธํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์ง„ framework์ด๋‹ค DRF ์ถ”๊ฐ€ https://velog.io/@yoonkangho/django-rest-framework-์‹œ์ž‘ํ•˜๊ธฐ-1#django-app-๋งŒ๋“ค๊ธฐ (์œˆ๋„์šฐ์—์„œ)์—ฐ๊ฒฐ ์™„๋ฃŒ nginx๋ฅผ ํ†ต๊ณผํ•œ drf ํŽ˜์ด์ง€. css๊ฐ€ ๋ถˆ๋Ÿฌ์ง€์ง€ ์•Š๋Š”๋‹ค..! static ํŒŒ์ผ๋“ค์„ ์ƒˆ๋กœ ์š”์ฒญํ•˜๋Š” ๋ชจ์Šต์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. nginx์™€ django์—์„œ ์„ค์ •์„ ํ•ด์ค˜์•ผ ํ•  ๋“ฏ ํ•˜๋‹ค. https://nachwon.github.io/django-deploy-4-static/ mange.py ์˜ collectstatic ๊ธฐ๋Šฅ์„ ํ†ตํ•ด static ํŒŒ์ผ์„ .static_root์— ๋ชจ์€ํ›„ → nginx์˜ static ํŒŒ์ผ ์ „๋‹ฌ ๊ธฐ๋Šฅ์„ ์ด์šฉํ•ด์„œ /static/ ..

Programming/Docker 2021.09.08