profile
๐Ÿ‘€

[Django] view ํ…Œ์ด๋ธ” ๋งŒ๋“ค๊ธฐ(mysql)

์‹ค์ œ๋กœ ์กด์žฌํ•˜๋Š” ํ…Œ์ด๋ธ”์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“œ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜์ง€ ์•Š๋Š” ๊ฐ€์ƒ ํ…Œ์ด๋ธ”์ด๋‹ค.ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ view ํ…Œ์ด๋ธ”์— ์ •์˜ํ•ด์„œ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ด€๋ฆฌ๊ฐ€ ์šฉ์ดํ•˜๊ณ  ์ฟผ๋ฆฌ๋ฌธ์ด ๊ฐ„๋‹จํ•ด์ง„๋‹ค.๋งค๋ฒˆ ๋ณต์žกํ•œ ์ฟผ๋ฆฌ๋ฌธ์ด ์ˆ˜ํ–‰๋˜์ง€ ์•Š๊ณ , ์ด๋ฏธ ๋งŒ๋“ค์–ด์ง„ view ํ…Œ์ด๋ธ”์—์„œ ๊ฐ€์ ธ์˜ค๊ธฐ ๋•Œ๋ฌธ์—

2022๋…„ 1์›” 10์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[Python] ์ƒ์œ„/ํŠน์ • ํด๋” import

ํŒŒ์ด์ฌ์€ ๋ชจ๋“ˆ/ํŒจํ‚ค์ง€๋ฅผ ์ฐพ์„ ๋•Œsys.module -> built-in modules -> sys.path์ˆœ์„œ๋กœ ์ฐพ๋Š”๋‹ค.์œ„ ๊ณผ์ •์—์„œ ๋ชจ๋“ˆ/ํŒจํ‚ค์ง€๋ฅผ ์ฐพ์ง€ ๋ชปํ•˜๋ฉด ModuleNotFoundError๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.์ƒ์œ„ ๋””๋ ‰ํ† ๋ฆฌ๋‚˜ ํŠน์ • ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” ๋ชจ๋“ˆ์„ importํ•  ๋•Œ๋Š”

2021๋…„ 8์›” 25์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[Algorithm] Binary search

๋ฆฌ์ŠคํŠธ์—์„œ ์ฐพ๊ณ ์ž ํ•˜๋Š” ๊ฐ’ n์ด ์žˆ์„ ๋•Œ,๋ฆฌ์ŠคํŠธ์˜ ์ค‘๊ฐ„ ๊ฐ’์ด n๋ณด๋‹ค ์ž‘์œผ๋ฉด n์˜ ์˜ค๋ฅธ ์ชฝ์„ ๊ฒ€์ƒ‰ํ•˜๊ณ ,์ค‘๊ฐ„ ๊ฐ’์ด n๋ณด๋‹ค ํฌ๋ฉด n์˜ ์™ผ์ชฝ์„ ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•œ๋‹ค. ๋‹จ, ๋ฆฌ์ŠคํŠธ๋Š” ์ •๋ ฌ๋œ ์ƒํƒœ์—ฌ์•ผ ํ•œ๋‹ค. ๋ฆฌ์ŠคํŠธ์˜ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ๊ฒ€์ƒ‰ํ•˜๋Š” linear search๋Š”๋ฆฌ์ŠคํŠธ์˜

2021๋…„ 8์›” 6์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[Django]values()

์ฟผ๋ฆฌ์…‹์˜ ๊ฐ’์„ ๋”•์…”๋„ˆ๋ฆฌ ํ˜•ํƒœ๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.values() ๋ฉ”์†Œ๋“œ์— ์ธ์ž๋กœ ํ•„๋“œ๋ช…์„ ๋„ฃ์œผ๋ฉด ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค์ง€ ์•Š๊ณ  {ํ•„๋“œ : ๊ฐ’}์˜ ํ˜•ํƒœ๋กœ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋‚ญ๋น„ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค.arts์— ๋‹ด๊ธด ์ฟผ๋ฆฌ์…‹์„ JsonResponse ํ˜•์‹์œผ๋กœ

2021๋…„ 5์›” 5์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[Django]select_related, prefetch_realated

์ฟผ๋ฆฌ์…‹์„ ๋ฐ˜ํ™˜ํ•  ๋•Œ foreign-key, OneTonOneFeild ๊ด€๊ณ„์ธ ๋ชจ๋ธ๋“ค ํ•จ๊ป˜ ๊ฐ€์ ธ์˜ค๋Š” ORMforeign-key, OneTonOneFeild ๊ด€๊ณ„์ธ ๋ชจ๋ธ๋“ค์„ ์บ์‹ฑํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ฝ”๋“œ์—์„œ ์žฌ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์ถ”๊ฐ€์ ์ธ ์ฟผ๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค.์ฟผ๋ฆฌ์…‹์„ ๋ฐ˜ํ™˜ํ•  ๋•Œ forei

2021๋…„ 5์›” 5์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[Django]using a dictionary to update fields in Django models

๋”•์…”๋„ˆ๋ฆฌ์˜ key๋Š” ํ•„๋“œ๋ช…, value๋Š” ๋ณ€๊ฒฝํ•  ๊ฐ’์œผ๋กœ ์„ค์ •ํ•œ๋‹ค.update ๋ฉ”์†Œ๋“œ์— (\*\*๋”•์…”๋„ˆ๋ฆฌ ๋ณ€์ˆ˜๋ช…)์„ ์ž…๋ ฅํ•œ๋‹ค.

2021๋…„ 4์›” 25์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[Django]get_or_create, update_or_create

์ด ๋ฉ”์„œ๋“œ๋Š” (object, created) ๋ผ๋Š” ํŠœํ”Œ ํ˜•์‹์œผ๋กœ ๋ฐ˜ํ™˜์„ ํ•œ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์ธ์ž(object)๋Š” ๊บผ๋‚ด๋ ค๊ณ  ํ•˜๋Š” ๋ชจ๋ธ์˜ ์ธ์Šคํ„ด์Šค์ด๋‹ค. ๋‘ ๋ฒˆ์งธ ์ธ์ž(created)๋Š” boolean flag๋กœ, TRUE ๋˜๋Š” FALSE๋ฅผ ๊ฐ–๊ณ  ์žˆ๋‹ค.get_or_create ๋ฉ”

2021๋…„ 4์›” 25์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

Scrum

์• ์ž์ผ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•๋ก ์˜ ์ข…๋ฅ˜์ค‘ ํ•˜๋‚˜๋กœ ๋ฐ˜๋ณต์ ์ด๊ณ  ์ ์ง„์ ์ธ ๊ฐœ๋ฐœ๋ฐฉ๋ฒ•์„ ๋งํ•œ๋‹ค. ๊ฐ ๋ฐ˜๋ณต์ฃผ๊ธฐ๊ฐ€ ์ข…๋ฃŒ๋  ๋•Œ๋งˆ๋‹ค ๋ถ€๋ถ„์ ์œผ๋กœ ์™„์„ฑ๋œ ๊ฒฐ๊ณผ๋ฌผ์ด ๋งŒ๋“ค์–ด์ง„๋‹ค. ๋ฐ˜๋ณต์ฃผ๊ธฐ๋Š” ์Šคํ”„๋ฆฐํŠธ(sprint)๋ผ๊ณ  ํ•˜๋ฉฐ ์ฃผ๋กœ 1~4์ฃผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.์†”๋ฃจ์…˜์— ํฌํ•จํ•  ๊ธฐ๋Šฅ/๊ฐœ์„ ์ ์— ๋Œ€ํ•œ ์šฐ์„  ์ˆœ์œ„๋ฅผ

2021๋…„ 4์›” 18์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

URL & URI

Uniform Resource Locator ๋ฆฌ์†Œ์Šค์˜ ์œ„์น˜๋ฅผ ์•Œ๋ ค์ค€๋‹ค.Uniform Resource Identifier์ž์› ์‹๋ณ„์ž์ธํ„ฐ๋„ท์— ์žˆ๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์œ ์ผํ•œ ์ฃผ์†ŒURL์€ ํŠน์ • ์‹œ์ ์— ์–ด๋–ค ๋ฆฌ์†Œ์Šค๊ฐ€ ์œ„์น˜ํ•œ ๊ณณ์„ ์•Œ๋ ค์ค€๋‹ค.๋ฆฌ์†Œ์Šค๊ฐ€ ์˜ฎ๊ฒจ์ง€๋ฉด ํ•ด๋‹น URL์„ ๋”๋Š” ์‚ฌ

2021๋…„ 4์›” 18์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

RESTful API

"Representational State Transfer"์˜ ์•ฝ์ž์ž์›์„ ์ด๋ฆ„์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ํ•ด๋‹น ์ž์›์˜ ์ƒํƒœ(์ •๋ณด)๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ๋ชจ๋“  ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.์ฆ‰, ์ž์›(resource)์˜ ํ‘œํ˜„(representation)์— ์˜ํ•œ ์ƒํƒœ ์ „๋‹ฌ์ž์› - URIํ–‰์œ„ - HTTP meth

2021๋…„ 4์›” 18์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[Django] QuerySet Method

create()get()update()delete()exists()save()count()first()last() ๋“ฑall()filter()values() ๋“ฑ

2021๋…„ 4์›” 11์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[Django/Python] Bcrypt & JWT

๊ฐœ์ธ์ •๋ณด๋ฅผ ์•”ํ˜ธํ™”ํ•˜๊ธฐ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ.bcrypt๋Š” 'str' ๋ฐ์ดํ„ฐ๊ฐ€ ์•„๋‹Œ 'Bytes' ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•œ๋‹ค.๋”ฐ๋ผ์„œ ๋ฐ์ดํ„ฐ๋ฅผ 'Bytes'๋กœ ๋ฐ”๊พธ์–ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.ํŒŒ์ด์ฌ์—์„œ๋Š” 'str'์„ encodeํ•˜๋ฉด 'Bytes'๊ฐ€ ๋˜๊ณ , 'Bytes'๋ฅผ decodeํ•˜๋ฉด 'str'์ด

2021๋…„ 4์›” 7์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[Django/Python] ์ •๊ทœํ‘œํ˜„์‹ - ํœด๋Œ€ํฐ๋ฒˆํ˜ธ, email

์ •๊ทœ์‹์€ ํŠน์ •ํ•œ ๊ทœ์น™์„ ๊ฐ€์ง„ ๋ฌธ์ž์—ด์˜ ์ง‘ํ•ฉ์„ ํ‘œํ˜„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ํ˜•์‹ ์–ธ์–ด์ด๋‹ค.ํŠน์ • ๊ฒ€์ƒ‰ ํŒจํ„ด์— ๋Œ€ํ•œ ํ•˜๋‚˜ ์ด์ƒ์˜ ์ผ์น˜ ํ•ญ๋ชฉ์„ ๊ฒ€์ƒ‰ํ•˜์—ฌ ํ…์ŠคํŠธ์—์„œ ์ •๋ณด๋ฅผ ์ถ”์ถœํ•˜๋Š” ๋ฐ ์œ ์šฉํ•˜๋‹ค.'๊ณ„์ •@๋„๋ฉ”์ธ.์ตœ์ƒ์œ„๋„๋ฉ”์ธ' ํ˜•์‹์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๋Š” ์ •๊ทœํ‘œํ˜„์‹์ด๋‹ค.์‚ฌ์šฉ๋ฒ•'3์ž๋ฆฌ ์ˆซ์ž - 3์ž

2021๋…„ 4์›” 7์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[Django]models.py ์ž‘์„ฑ

๋ชจ๋“  ์„ค์ •์ด ๋๋‚ฌ๋‹ค๋ฉด products/models.py์— class ๋“ฑ์„ ์ž‘์„ฑํ•œ๋‹ค.ํด๋ž˜์Šค๋ช…์€ ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•˜๊ณ  ๋‹จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.ํด๋ž˜์Šค๊ฐ€ ํ…Œ์ด๋ธ”์ด ๋˜๊ณ (ํด๋ž˜์Šค์ด๋ฆ„ != ํ…Œ์ด๋ธ”์ด๋ฆ„), ํด๋ž˜์Šค ๋‚ด์˜ ๋ณ€์ˆ˜๋“ค์ด ํ…Œ์ด๋ธ”์˜ ํ•„๋“œ(์ปฌ๋Ÿผ)๊ฐ€ ๋œ๋‹ค.PK๋กœ ์‚ฌ์šฉํ•˜๋Š” ํ•„๋“œ๋Š” ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋œ

2021๋…„ 3์›” 31์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[Django]์•ฑ ๋งŒ๋“ค๊ธฐ & ์„ค์ •

manage.py ํŒŒ์ผ์ด ์กด์žฌํ•˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž…๋ ฅํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด django๊ฐ€ products๋ผ๋Š” ์ด๋ฆ„์˜ ํด๋”์™€ ๊ตฌ์„ฑ์š”์†Œ๋“ค์„ ๋งŒ๋“ค์–ด์ค€๋‹ค.

2021๋…„ 3์›” 31์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
post-thumbnail

[Django]ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ธฐ

ํ•ญ์ƒ ๊ฐ€์ƒํ™˜๊ฒฝ์„ ์‹คํ–‰ํ•œ ์ƒํƒœ์—์„œ ์ง„ํ–‰ํ•œ๋‹ค.ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ, python ๋˜๋Š” django์—์„œ ์‚ฌ์šฉ ์ค‘์ธ ์ด๋ฆ„์€ ํ”ผํ•ด์•ผ ํ•œ๋‹ค.ํŠนํžˆ django(Django ์ž์ฒด์™€ ์ถฉ๋Œ ๋ฐœ์ƒ)๋‚˜ test(python ํŒจํ‚ค์ง€ ์ด๋ฆ„ ์ค‘ ํ•˜๋‚˜)๊ฐ™์€ ์ด๋ฆ„์€ ํ”ผํ•ด์•ผ ํ•œ๋‹ค.ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค๋ฉด w

2021๋…„ 3์›” 31์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[Django]๊ฐ€์ƒํ™˜๊ฒฝ ์ค€๋น„ miniconda

ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค๊ธฐ ์ „, ๊ฐ€์žฅ ๋จผ์ € ๊ฐ€์ƒํ™˜๊ฒฝ์„ ์ค€๋น„ํ•ด์•ผ ํ•œ๋‹ค.ํ”„๋กœ์ ํŠธ๋งˆ๋‹ค ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ๋ฒ„์ „์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์—๋ฒ„์ „๋ผ๋ฆฌ ์ถฉ๋Œ์„ ๋ฐฉ์ง€ํ•˜๊ณ , ๋ถˆํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ ์œ„ํ•ด๊ฐ€์ƒํ™˜๊ฒฝ์„ ์‚ฌ์šฉํ•œ๋‹ค.๊ฐ€์ƒํ™˜๊ฒฝ์„ ์‹คํ–‰ํ•œ ํ›„, ํ•„์š”ํ•œ ๊ฒƒ๋“ค์„ ์„ค์น˜ํ•ด์ค€๋‹ค.ex)mysql, mys

2021๋…„ 3์›” 31์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
post-thumbnail

[Python]package ๋งŒ๋“ค๊ธฐ

์œ„์™€ ๊ฐ™์€ ๊ตฌ์กฐ์˜ package๋ฅผ ์ƒ์„ฑํ–ˆ๋‹ค. \_\_init\_\_.py ํŒŒ์ผ์€ ํ•ด๋‹น ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ํŒจํ‚ค์ง€์˜ ์ผ๋ถ€์ž„์„ ์•Œ๋ ค์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.๋””๋ ‰ํ„ฐ๋ฆฌ์— \_\_init\_\_.py ํŒŒ์ผ์ด ์—†๋‹ค๋ฉด ํŒจํ‚ค์ง€๋กœ ์ธ์‹๋˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ๋‹ค. \_\_init\_\_.py ํŒŒ์ผ์˜ ๋‚ด์šฉ์€

2021๋…„ 3์›” 21์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
post-thumbnail

[Python]absolute path & relative path

์ง์ ‘ ๊ฐœ๋ฐœํ•œ local package๋ฅผ importํ•  ๋•Œ๋Š” ํ•ด๋‹น package์˜ ์œ„์น˜์— ๋งž๊ฒŒ import ๊ฒฝ๋กœ๋ฅผ ์ž˜ ์„ ์–ธํ•ด์•ผ ํ•œ๋‹ค. Local package๋ฅผ importํ•˜๋Š” ๊ฒฝ๋กœ์—๋Š” absolute path ์™€ relative path ๊ฐ€ ์žˆ๋‹ค.importํ•˜๋Š” ํŒŒ์ผ์ด

2021๋…„ 3์›” 21์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€

[Python]sys.modules & sys.path

ํŒŒ์ด์ฌ์—์„œ module์ด๋‚˜ pakage๋ฅผ importํ•  ๋•Œํ•ด๋‹น module ํ˜น์€ pakage์˜ ์œ„์น˜๋ฅผ ์ฐพ์•„์•ผ ํ•œ๋‹ค.ํŒŒ์ด์ฌ์€ sys.modules -> built-in modules -> sys.path ์ˆœ์„œ๋Œ€๋กœ ์œ„์น˜๋ฅผ ์ฐพ๋Š”๋‹ค.ํŒŒ์ด์ฌ์ด ๋ชจ๋“ˆ์ด๋‚˜ ํŒจํ‚ค์ง€๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด ๊ฐ€์žฅ

2021๋…„ 3์›” 21์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€