pyhub
@pyhub
Students
3,120
Reviews
153
Course Rating
4.8
Posts
Q&A
pycharm ๋ฆฌ๋ค์ฝ๋
๋ฐฉ๊ธ ๋ฉ์ผ ๋ณด๋ด๋๋ ธ์ต๋๋ค.ํ์ธ์ด ๋ฆ์ด ์ฃ์กํฉ๋๋ค. :-) ์ดํด๋ณด์๊ณ ๋ฑ๋ก์ด ์ ์ ๋์๋ฉด, ์ ๋ฌ๋๋ฆฐ ๋ฉ์ผ๋ก ํ์ ๋ถํ๋๋ฆฝ๋๋ค.๊ฐ์ฌํฉ๋๋ค.์ด์ง์ ๋๋ฆผ
- 0
- 2
- 39
Q&A
08-14 FormView ๊ด๋ จ ์ง๋ฌธ
์๋ ํ์ธ์.FormView์์ ModelForm์ ๋ชป ์ธ ์ด์ ๋ ์ ํ ์๊ตฌ์. ๊ฐ์์์๋ ๋จ์ง ModleForm์ด ์๋ Form์ ์ฌ์ฉํ๋ ํ๊ฒฝ์์๋ ์ด๋ ๊ฒ ์ ์ฅ์ ๊ตฌํํจ์ ๋ณด์ฌ๋๋ฆฌ๊ธฐ ์ํจ์ด์์ต๋๋ค.ModelForm์ ์ฐ์ค ๋์๋ ๋ณด์ฌ์ฃผ์ ์ฝ๋๋๋ก ๊ตฌํํ์๋ฉด, ํผํํธํฉ๋๋ค. ๐์ง๋ฌธ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. :-)
- 0
- 1
- 54
Q&A
07-01 IPv4AddressIntegerField ์ง๋ฌธ
์๋ ํ์ธ์.๋ต๋ณ์ด ์กฐ๊ธ ๋ฆ์ด ์ฃ์กํฉ๋๋ค.์ฑ์ง๋๊ป์ ๋ง์ํ์ ๋ด์ฉ์ด ๋ง๊ตฌ์. ์ ๊ฐ ์กฐ๊ธ ๋ ์ ๋ฆฌ๋ฅผ ํด๋ณด๊ฒ ์ต๋๋ค. :)get_prep_value ๋ฉ์๋์ฅ๊ณ ๋ด๋ถ์๋ SQL Compiler๋ฅผ ํตํด SQL์ ์์ฑํฉ๋๋ค. save, create ์ธ์๋ ์กฐํ ์์๋ ๋ชจ๋ธ ํ๋ ๊ฐ ์ฐธ์กฐ๊ฐ ํ์ํ๋๊น์. ํด๋น ๋ชจ๋ธ ํ๋๋ฅผ ํตํด SQL์ ์์ฑํ ๋ get_prep_value ๋ฉ์๋๋ฅผ ํธ์ถํฉ๋๋ค.ex) ๋ชจ๋ธ ํ๋์์๋ bool ํ์ ์ด์ง๋ง ๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ 'Y', 'N' ๋ฌธ์์ด๋ก ์ ์ฅ์ฝ์ ํ ๋์ True -> 'Y', False -> 'N' ๋ณํ์ด ํ์ํ๊ฒ ์ต๋๋ค.from_db_value ๋ฉ์๋๋ฐ๋๋ก ์ฅ๊ณ ๋ชจ๋ธ/์ฟผ๋ฆฌ์ ์ ํตํด ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ฝ์ด์จ ํ๋๊ฐ์ from_db_value ๋ฉ์๋๋ฅผ ํตํด, ๊ทธ ๋ชจ๋ธ ํ๋ ์ฑ๊ฒฉ์ ๋ง๋ ๊ฐ์ผ๋ก ๋ณํํฉ๋๋ค.ex) ๋ฐ์ดํฐ๋ฒ ์ด์ค์์๋ 'Y', 'N' ๋ฌธ์์ด๋ก ์ ์ฅํ์ง๋ง, ์ฅ๊ณ ๋ชจ๋ธ ๋จ์์๋ bool ํ์ ์ผ๋ก ์ฒ๋ฆฌ์ฝ์ ํ ๋์, 'Y' -> True, 'N', -> False ๋ณํ์ด ํ์ํ๊ฒ ์ต๋๋ค.to_python์ด๋ค ๊ฐ์ ํด๋น ๋ชจ๋ธ ํ๋์ ํ์ํ ํ์ /๊ฐ์ผ๋ก ๋ณํํ๋ ๋ฉ์๋์ ๋๋ค. ํ์ฉ๋ ๋ฒ์์ ๊ฐ์ด ์๋๋ผ๋ฉด ValudationError๋ฅผ ๋ฐ์์์ผ์ผ ํฉ๋๋ค.ex) DateTimeField : datetime ๊ฐ์ฒด์ธ๋ฐ, ์ฅ๊ณ ํ๋ก์ ํธ์์๋ timezone ์ง์์ด ์ผ์ ธ์๋ค๋ฉด, timezone์ด ์๋ datetime ๊ฐ์ฒด๋ก ๋ณํ๋ชจ๋ธ์ clean ๋ฉ์๋์ choices ์ต์ ์ง์ ์์๋ ๊ฐ ๋ณํ์ ๋ชฉ์ ์ผ๋ก ํธ์ถ๋ฉ๋๋ค.๊ทธ๋ฆฌ๊ณ ๋ชจ๋ธ ํ๋์ ๋ฐ๋ผ get_prep_value ๋ฉ์๋์์ to_python ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ ๊ฐ ๋ณํ์ ํ๊ธฐ๋ ํฉ๋๋ค.--์ข์ ์ง๋ฌธ ์ฃผ์ ์ ๊ฐ์ฌ๋๋ฆฌ๊ตฌ์. ์ดํด๋ณด์๋ค๊ฐ ๋ ๊ถ๊ธํ ์ ์์ผ์๋ฉด ๋๊ธ ๋ถํ๋๋ฆฝ๋๋ค.ํ์ดํ ์ ๋๋ค. :-)
- 0
- 1
- 61
Q&A
nextjs git ๊ด๋ฆฌ?
์๋ ํ์ธ์.Mono/Multi Repo์ ๋ํ ๋ถ๋ถ์ ์ ๋ต์ ์๊ณ , ํ์ด์ค๋ถ๊ณผ ๊ฐ์ ๊ณณ์์๋ ์ด๋ค ๋ฐฉ๋ฒ์ด ์ข์๊น์ ๋ํด์ ๊ณ์ ๊ณ ๋ฏผํ๊ณ ์ํฉ์ ๋ฐ๋ผ ๋ฐ๊ฟ๊ฐ๋๋ผ๊ตฌ์.Mono Repo๋ Django์ Next.js ๋ฅผ ํ๋์ ํ์์ ๊ฐ๋ฐํ๊ณ , ํ๋ก ํธ/๋ฐฑ์๋ ๋์ ์์ ์ด ์ฆ๊ณ , ํ๋ก์ ํธ ์ ์ฒด ๊ตฌ์กฐ ํ์ ์ด ์ค์ํ ๊ฒฝ์ฐ์ ์ ํํด๋ณผ ์ ์๊ฒ ๊ตฌ์.Multi Repo๋ Django ํ๊ณผ Next.js ํ์ด ๋ช ํํ ๋ถ๋ฆฌ๋ ๊ฒฝ์ฐ, ๊ทธ๋ฆฌ๊ณ ๊ฐ ํ์ ๊ถํ ๊ด๋ฆฌ๊ฐ ์ค์ํ ๊ฒฝ์ฐ์ Multi Repo๋ฅผ ์ ํํด๋ณด์ค ์ ์์ผ์๊ฒ ์ต๋๋ค.์ฒ์ ์์ํ์ ๋ค๋ฉด Mono Repo๋ก ์์ํด๋ณด์๊ณ , Repo ๋ถ๋ฆฌ์ ํ์์ฑ์ด ๋๊ปด์ง์ค ๋, Mutl Repo๋ฅผ ๊ณ ๋ฏผํด๋ณด์๋ฉด ์ด๋จ๊น์?์ดํด๋ณด์๊ณ ๋๊ธ ๋จ๊ฒจ์ฃผ์ธ์.ํ์ดํ ์ ๋๋ค. :-)
- 0
- 1
- 55
Q&A
14-08 ์์ ํ์ธ ์์ฒญ ๋๋ฆฝ๋๋ค.
์๋ ํ์ธ์.์ฒซ๋ฒ์งธ ์ค์ท์ ์ฝ๋๋ Next.js ์ฝ๋๋ก์ ์๋ฒ ๋จ์์ ์ฅ๊ณ ์๋ฒ๋ก fetch ํธ์ถํ๋ ํ๋ ์ฝ๋์ ๋๋ค. Next.js ์์๋ getServerSideProps ํจ์๋ ์๋ฒ ๋จ์์ ํธ์ถ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ์ธ์ ์ธ์ฆ์ ์ํด์, ์ฅ๊ณ ์์ฒญ์ sessionid ์ฟ ํค๋ฅผ ์์ฒญ ํค๋์ ๋ด์์ ๋ณด๋์ด์ผ ํ๊ตฌ์.(์ฌ์ง)๊ทธ ๋ค์์ ๋ณด์ฌ์ฃผ์ ์ฝ๋๋ ์น๋ธ๋ผ์ฐ์ ๋จ์์ ์ํ๋๋ fetch ์ฝ๋์ ๋๋ค. ์น ๋ธ๋ผ์ฐ์ ๋จ์์ ํธ์ถ์ ํ๋, ๋ธ๋ผ์ฐ์ ์์ ์์์ sessionid ์ธ์ ์ฟ ํค๋ฅผ ์ ์กํด์ฃผ๋๊น ๋ณ๋๋ก ํค๋ ์ค์ ์ด ํ์์๋ ์ํฉ์ด ๋ ๊ฒ์ ๋๋ค.(์ฌ์ง)๊ฐ์ JS ์ฝ๋์ด์ง๋ง, ์ด๋ ๋จ๊ณ์์ ์ํ๋๋ ์ง์ ๋ฐ๋ผ ํ์ํ ์ค์ ์ด ๋ฌ๋ผ์ง๋๋ค.์ดํด๋ณด์๊ณ , ๋๊ธ ๋ถํ๋๋ฆฝ๋๋ค.์ง๋ฌธ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. :-)
- 0
- 2
- 69
Q&A
14-07์์ SESSION_COOKIE_DOMAIN = None ์ฒ๋ฆฌ ํ์.
14-06 ์์์์ ์๋์ ๊ฐ์ด ์ค์ ์ ํ ์ด์ ๋SESSION_COOKIE_DOMAIN = env.str("SESSION_COOKIE_DOMAIN", default=None) or NoneSESSION_COOKIE_DOMAIN ํ๊ฒฝ๋ณ์๊ฐ ์์ผ๋ฉด ์ฝ์ด์ settings์ ๋ฐ์ํ๊ธฐ ์ํจ์ ๋๋ค.๊ทธ๋ฐ๋ฐ, SESSION_COOKIE_DOMAIN ํ๊ฒฝ๋ณ์๊ฐ ๋น ๋ฌธ์์ด์ด ๋ค์ด์๋ ๊ฒฝ์ฐ์๋ django-environ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์๋ ๊ฐ์ด ์๋ ๊ฒ์ผ๋ก ํ๋จํ๊ธฐ์ None ๊ฐ์ด ๋ค์ด๊ฐ๋ ๊ฒ์ด ์๋๋ผ, ๋น ๋ฌธ์์ด๋ก์ settings.SESSION_COOKIE_DOMAIN = "" ๊ฐ์ด ๋ฉ๋๋ค. ๋น ๋ฌธ์์ด์ธ ๊ฒฝ์ฐ์๋ None ๊ฐ์ผ๋ก ๋ณํํ๊ธฐ ์ํด ๋์ or None ์ฝ๋๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ ๋๋ค. "" or None ์ ํ๊ฐ๋ None์ด ๋๊ฑฐ๋ ์.settings.SESSION_COOKIE_DOMAIN ์ค์ ์๋ ๋ฐ๋์ None ์ด๊ฑฐ๋ ์ง์ ๋๋ฉ์ธ์ด ๋ค์ด๊ฐ์ผ ํฉ๋๋ค. ๊ทธ๋ ์ง ์๋ค๋ฉด csrf ์ฒดํฌ์์ ์๋ฑํ๊ฒ ๋์ํฉ๋๋ค.์๋๋ django/middleware/csrf.py ์ฝ๋ ์ค ์ผ๋ถ์ ๋๋ค.(์ฌ์ง)https://github.com/django/django/blob/a3b1107a4955bdd994908efb4c6e1d03c281e69f/django/middleware/csrf.py#L322settings.SESSION_COOKIE_DOMAIN ๊ฐ์ None์ผ๋ก ํ๋์ฝ๋ฉํ์ จ์ ๋ ์ ๋์ํ์ ๋ค๋ฉด,settings.SESSION_COOKIE_DOMAIN ๊ฐ์ด ํ๊ฒฝ๋ณ์ ๊ฐ์ผ๋ก ์ธํด ์๋ง ๋ค๋ฅด๊ฒ ์ง์ ๋์ง ์์ผ์ จ์๊น ์ถ์ด์.์ฅ๊ณ ์์ ๊ตฌ๋ํ์ ์ ์๋ ๊ฐ์ ํ์ธํด๋ณด์ จ์ผ๋ฉด ํฉ๋๋ค.from django.conf import settingsprint(repr(settings.SESSION_COOKIE_DOMAIN))ํ์ธํด๋ณด์๊ณ ๋๊ธ ๋ถํ๋๋ฆฝ๋๋ค. :-)
- 0
- 2
- 55
Q&A
pycharm ํ๋ก ์๋์
์๋ ํ์ธ์.์ ๊ท JetBrains ๊ณ์ ์ ๋ํด 1๋ฌ ์ฒดํ ๊ณ์ ์ ์์ง๋ ์ฌ์ ํ ์ง์๋๊ณ ์์ต๋๋ค. ์๋ก์ด ์ด๋ฉ์ผ๋ก JetBrains ๊ณ์ ์ ๋ง๋์ ์ ๋ค์ ํ์ธํด๋ณด์๊ฒ ์ด์?
- 0
- 2
- 111
Q&A
๋ฉ์ผ ์ ์กํ๋ ๋ถ๋ถ์ ์ด๋จ๋ ์ฐ๋๊ฑด๊ฐ์?
์๋ ํ์ธ์.์ฅ๊ณ management command์ ๊ฒฝ์ฐ, call_command ๋ฉ์๋๋ฅผ ํตํด ์ง์ ๋ช ๋ น์ ํธ์ถํ์ค ์ ์์ต๋๋ค.https://docs.djangoproject.com/en/5.2/ref/django-admin/#running-management-commands-from-your-code๊ทธ๋ฐ๋ฐ ์ด๋ฉ์ผ ์ ์ก์ ๊ฒฝ์ฐ, ๋ค์ํ ๊ณณ์์ ์ฌ์ฉ๋ ์ ์์ผ๋ call_command๋ฅผ ์ฐ์๊ธฐ๋ณด๋ค, ๋ณ๋ ํจ์๋ก ๊ตฌํํ์๊ณ management command์์๋ ํจ์๋ฅผ ํธ์ถํด์ ์ฐ์๋ ๊ฒ์ด ๊ด๋ฆฌ์ฑ์ด ๋ ๋์ผ์ค ์ ์์ผ์ค ๋ฏ ํฉ๋๋ค.์ดํด๋ณด์๊ณ ๋๊ธ ๋จ๊ฒจ์ฃผ์ธ์. :-)
- 0
- 1
- 65
Q&A
๊ณ ๋ฏผ
์๋ ํ์ธ์.์ค๋ 5/13(ํ), ์คํ 10์์ ์๋ zoom ์ผ๋ก ๋ค์ด์ค์ธ์.https://us05web.zoom.us/j/83005494975?pwd=b0XoKw8k4h3ZaLB0lteEa7MVFBqTIz.1๋ค๋ฅธ ๋ถ๋ค๋ ๊ด์ฌ์์ผ์ ๋ถ๋ค์ ๋ค์ด์ค์ ์, ์ธ์ฌ ๋๋์์ฃ . :-) 1์๊ฐ ์ ๋ ์งํํด๋ณด๊ฒ ์ต๋๋ค.
- 0
- 3
- 188
Q&A
๊ณ ๋ฏผ
์๋ ํ์ธ์. ๊ทธ๋ฐ ๊ณ ๋ฏผ์ด ์์ผ์ จ๊ตฐ์. :-) ์ ๋ Zoom์ผ๋ก ํ ๋ฒ ๋ฏธํ ์ ํด๋ณด๋ฉฐ ์ง๋ต์ ๋๋ ๋ณด์๋ฉด ์ด๋จ๊น์?์ค๋ ์ ๋ 10์๋ ๋ด์ผ ์ ๋ 10์์ 1์๊ฐ์ฏค ์ด์ผ๊ธฐ๋๋ ๋ณด๊ณ , ๊ด์ฐฎ์ผ๋ฉด ๋ ์๊ฐ ์ก์๋ณด๊ตฌ์.์ง๋ฌธ ์ฃผ์๋ฉด, ๊ฐ์์์ ๋ค๋ฃจ์ง ๋ชปํ๋ ๋ค์ํ ์ด์ผ๊ธฐ๋ค์ ๋๋ ์ ์์ ๋ฏํฉ๋๋ค.๊ด์ฌ์์ผ์ ๋ค๋ฅธ ๋ถ๋ค๋ ํจ๊ป ํ์ ๋ ์ข๊ตฌ์. ๊ด์ฌ์์ผ์ ๋ถ๋ค ์์ผ์๋ฉด ๋๊ธ ๋จ๊ฒจ์ฃผ์ธ์. ใ ใ .๊ฐ์ฌํฉ๋๋ค.
- 0
- 3
- 188




