Gallery
Search
โข
๋ฐฐ์ด์ :
โฆ
project mars์ ๋น์ทํ ํ๋ก์ ํธ(๋ณต์ต)
โฆ
ํ์ง๋ง ๋น์ทํ๊ณ ์คํ๋ ค ๋ ์ ์ ๋ถ๋์ด๊ธฐ ๋๋ฌธ์ ์ง์คํด์ ์งํํจ
โฆ
๋ง์น HTML ํ์ค ๋ ์ด์์์ฒ๋ผ ํ๋ก์ ํธ ํ์ค ๋ ์ด์์์ผ๋ก ์ฌ์ฉํด๋ ๋ ๊ฒ ๊ฐ์
โฆ
์ฌ๊ธฐ์ + ๊ธฐ๋ฅ๋ค์ project pedia์ฒ๋ผ ๋ชจ๋ํ ์์ผ์ ํ
์คํธํ๊ณ ๋ถ์ฌ๋๊ฐ๋ฉด ๋์ง ์์๊น๋ผ๋ ์๊ฐ
โฆ
๊ธฐ๋ฅ ๊ตฌํ์ ์ํย app.pyย ๋ถ๋ถ์ ์์ฑํ ๋ ์ค์ ๋ก ์๋ฌธ์๋ตํ๋ ๋ฐฉ์์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํด ๋ด
โช
์ด ๋ถ๋ถ์ ์ข ๋ ์์ธํ ํ๋ฆ ์ ์ฒด๋ฅผ ์ธ์ฐ๊ณ
โช
๊ฐ ๋ถ๋ถ์ ์ด๋ค ์ฝ๋๊ฐ ์ฌ์ฉ๋๋์ง ๋ฐ๋ณต์๋ฌํ๋ฉด์ ์๊ธฐํด์ผ ํ ๊ฒ ๊ฐ์.
โช
๋ถ๋์ด ์ ๊ธฐ ๋๋ฌธ์ ํด๋น ํ๋ก์ ํธ๋ฅผ ์๊ธฐํ๋ ๊ฒ์ด ์ข์ ๋ณด์
โข
์ด๋ ค์ด ์ :
โฆ
GET๊ณผ POST๋ฅผ ๊ณ์ ์ฐ๋๋ฐ ์ ๋
route()์ ๋ํ ๊ฐ๋
์ ์ฐพ์๋ณด์ง ์์์์
โฆ
Route()
โช
HTTP(์น ์ดํ๋ฆฌ์ผ์ด์
์์ ์ฌ์ฉํ๋ ํ๋กํ ์ฝ)๋ URL ์ ๊ทผ์ ๋ํด ๋ช ๊ฐ์ง ๋ค๋ฅธ ๋ฐฉ์์ ์ ๊ณตํ๋ค. ๊ธฐ๋ณธ์ ์ผ๋กย GETย ๋ฐฉ์์ผ๋ก ์ ๊ณต๋์ง๋ง,ย route()ย ๋ฐ์ฝ๋ ์ดํฐ์ย methodsย ์ธ์๋ฅผ ์ ๊ณตํ๋ฉด ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ๋ณ๊ฒฝํ ์ ์๋ค.
โช
GETย :ย ๋ธ๋ผ์ฐ์ ๊ฐย ์ด๋ค ํ์ด์ง์ ์ ์ฅ๋ ์ ๋ณด๋ฅผ ๋จ์ง ์ป๊ธฐ ์ํด ์๋ฒ์ ์์ฒญํ๊ณ ์๋ฒ๋ ๊ทธ ์ ๋ณด๋ฅผ ๋ณด๋ธ๋ค. ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ๋ฉ์๋๋ค.
โช
POST :ย ๋ธ๋ผ์ฐ์ ๋ ์๋ฒ์๊ฒ ์๋ก์ด ์ ๋ณด๋ฅผย ์ ์ก*ํ๋๋ก ํน์ URL์ ์์ฒญํ๊ณ ๊ทธ ์ ๋ณด๊ฐ ์ค์ง ํ๋ฒ ์ ์ฅ๋๋ ๊ฒ์ ๋ณด์ฅํ๋๋ก ํ๋ค. ์ด๊ฒ์ด ๋ณดํต HTMLํผ์ ํตํด์ ์๋ฒ์ ๋ฐ์ดํฐ ์ ์กํ๋ ๋ฐฉ์์ด๋ค.
โช
๊ณต์๋ฌธ์์ ๋ณด๋ HEAD, PUT, DELETE, OPTIONS ๊ฐ์ ๊ฒ๋ ์๋ค.
[Flask] Flask framework ๋ฏธ๋ํ๋ก์ ํธ(project bucket) 10 ํ๋ก์ ํธ ํ๊ณ ๋ฐฐ์ด์ , ์ด๋ ค์ ๋์
โข
๋ฐฐ์ด์ :
โฆ
ํ๋ก์ ํธ ์ฒ๋ผ ์งํํ๊ธฐ ์ํด ํ๋ก์ ํธ ๊ฐ์ ์์ฑ
โฆ
๊ตฌํํ ๊ธฐ๋ฅ์ ๊ธฐํ
โฆ
ํ๋ก์ ํธ ์งํ ๋จ๊ณ ๊ตฌ์ฑ
โช
์ด๊ธฐํ๊ฒฝ๊ตฌ์ถ
โช
ํ๋ ์์ํฌ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น
โช
๊ธฐ์ด ํ๋ก์ ํธ ๊ตฌ์กฐ ์์ฑ ๋ฐ ํ์
๋ถ๋ฐฐ
โช
GET ๊ธฐ๋ฅ๊ตฌํ
โช
POST ๊ธฐ๋ฅ๊ตฌํ
โช
์ต์ข
ํ
์คํธ
โฆ
CSS, JavaScript ๋ชจ๋ํ(Static) ๋ฐ ์ฐธ์กฐ ๋งํฌ ์ค์
โข
์ด๋ ค์ด ์ :
โฆ
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋? ๊ฐ๋
์ดํด
โช
ํจ์๋ค์ด ๋ญ์ณ์ง ํ๋์ .py ํ์ผ ์์ ์ด๋ฃจ์ด์ง ๊ฒ์ย ๋ชจ๋์ด๋ผ๊ณ ํฉ๋๋ค.
โช
์ฌ๋ฌ ๊ฐ์ ๋ชจ๋์ ๊ทธ๋ฃนํ ํ๋ฉดย ํจํค์ง๊ฐ ๋ฉ๋๋ค.
โช
ํดํท ๋๋ ํจํค์ง๋ ์ข
์ข
ย ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ผ๊ณ ๋ ๋ถ๋ฆฌ์๋๋ค.
โฆ
ํ๋ก์ ํธ๋ฅผ ๋ถ๋ฆฌํ๋ ๊ณผ์ ๊ณผ ๊ฐ์ํ๊ฒฝ์ ๋ค์ ์ค์ ํ๋ ํ๊ฒฝ๊ตฌ์ถ ๋จ๊ณ์์ ์๋ฌ๊ฐ ๋ฐ์ ๋ฐ ํด๊ฒฐ
โช
Importย "flask"ย couldย notย beย resolvedย fromย sourceย Pylanceย (reportMissingModuleSource)
โช
์์ ํด๋๊ฐ ์๋ ๊ฒฝ์ฐ.. VSCode์์ "ํด๋ ์ ํ"์ ์์ ํด๋๋ฅผ ์ ํํ ์ํ์์ (venv)๊ฐ์ํ๊ฒฝ์ ์ค์ ํ๋ฉด ์์ ํด๋์์ venvํด๋์ ์ค์ ํ์ผ๋ค์ด ์๊ฒจ๋๋ค. ์๋ง ์ ํ๋ ํด๋๋ฅผ root์ฒ๋ผ ์ธ์ํด์ root/venv/๋ฅผ ์์ฑํ๋ ๊ฒ ๊ฐ๋ค.
โฆ
ํด๋ผ์ด์ธํธ ์์ฒญ-๋ฐฑ์๋ ์๋ต๊ณผ ์ก์ ๋ฑ ํต์ ์ ํ๋ฆ, ๋ฐ์ดํฐ์ ํ๋ฆ์ด ์ด๋ ต๋ค.
โช
์ View ํ์ด์ง ํด๋ผ์ด์ธํธ์์ Frontend๋ก๋ถํฐ Backend ๊ฐ์ ์์ฒญ ๋ฐ ์๋ต, ๋ฐ์ดํฐ ๋ณํ๊ณผ ์ด๋ ํ๋ฆ์ ์ค์ค๋ก "ํ์ค์ฉ" script.jsํ์ผ๊ณผย app.pyย ํ์ผ์ ์๋ค๊ฐ๋คํ๋ฉฐ ์ฝ์ด๋ด๊ณ ๋ชจ๋ฅด๋ ๋ถ๋ถ, ์ดํด๊ฐ ์๋๋ ๋ถ๋ถ๋ค์ ์ฐพ์๋ณด์๋ค.
โฆ
fetch()์ ์ฐ์๋ .then()์
โช
์๋ฒ ํต์ (fetch())์ ๋ํ ์๋ต(response)๊ฐ์ฒด๋ฅผ ๋ฐํ
โช
fetch().then( respose => {์ฝ๋ฐฑ ํจ์1} ).then( respose => {์ฝ๋ฐฑ ํจ์2} )
โช
fetch์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ response์ธ์์ ๋ณด๋ธ๋ค.
โช
์ฝ๋ฐฑํจ์๋ฅผ ํตํด ๊ฒฐ๊ณผ๋ฅผ ๋ค์ return ํ๋ค.
โช
then()๋ฅผ ์ฌ๋ฌ๋ฒ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ์ธ์ ๊ฐ์ ์ ํจ์์ ๊ฒฐ๊ณผ๋ฅผ ์๋ฏธํ๋ค.
โฆ
jsonify()
โช
์ฌ์ฉ์๊ฐ json data๋ฅผ ๋ด๋ณด๋ด๋๋ก ์ ๊ณตํ๋ flask์ ํจ์. jsonify()๋ json response๋ฅผ ๋ณด๋ด๊ธฐ ์ํด ์ด๋ฏธ content-type header๊ฐ 'application/json'๋ก ๋์ด ์๋ flask.Response() ๊ฐ์ฒด๋ฅผ ๋ฆฌํดํ๋ค.
โฆ
res.json()
โช
Response:ย json()ย method== Response stream์ ๊ฐ์ง๊ณ ์์(take) ๋๋ ๋ ๊น์ง ์ฝ๋๋ค(read it to completion). body text๋ฅผ JSONํํ๋ก ํ์ฑ(parsing)ํ resolve๊ฐ์ธ Promise ๋ฅผ ๋ฆฌํดํ๋ค.)
โช
(*The json() method of the Body mixin takes a Response stream and reads it to completion. It returns a promise that resolves with the result of parsing the body text as JSON.
โฆ
Promise
โช
Promise๋ ํ๋ก๋ฏธ์ค๊ฐ ์์ฑ๋ ์์ ์๋ ์๋ ค์ง์ง ์์์ ์๋ ์๋ ๊ฐ์ ์ํ ๋๋ฆฌ์๋ก, ๋น๋๊ธฐ ์ฐ์ฐ์ด ์ข
๋ฃ๋ ์ดํ์ ๊ฒฐ๊ณผ ๊ฐ๊ณผ ์คํจ ์ฌ์ ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํ ์ฒ๋ฆฌ๊ธฐ๋ฅผ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค. ํ๋ก๋ฏธ์ค๋ฅผ ์ฌ์ฉํ๋ฉด ๋น๋๊ธฐ ๋ฉ์๋์์ ๋ง์น ๋๊ธฐ ๋ฉ์๋์ฒ๋ผ ๊ฐ์ ๋ฐํํ ์ ์์ต๋๋ค. ๋ค๋ง ์ต์ข
๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ ๊ฒ์ด ์๋๊ณ , ๋ฏธ๋์ ์ด๋ค ์์ ์ ๊ฒฐ๊ณผ๋ฅผ ์ ๊ณตํ๊ฒ ๋ค๋ '์ฝ์'(ํ๋ก๋ฏธ์ค)์ ๋ฐํํฉ๋๋ค.
โฆ
fetch()์ body
โช
fetch('/mars', {ย method:ย "POST",ย body:ย formDataย })
โช
body๋ ์์ฒญ์ ์ถ๊ฐํ๊ณ ์ ํ๋ ๋ณธ๋ฌธ์
๋๋ค. Blob, ArrayBuffer, TypedArray, DataView, FormData, URLSearchParams, ๋ฌธ์์ด ๊ฐ์ฒด ๋๋ ๋ฆฌํฐ๋ด, ReadableStream ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ ์ผ ๋ง์ง๋ง์ ์์ง ์คํ์ ๊ธฐ๋ฅ์ด๋ฏ๋ก ํธํ์ฑ ์ ๋ณด๋ฅผ ๋จผ์ ํ์ธํด์ ์ฌ์ฉํ ์ ์์์ง ๊ฒ์ฆํ์ธ์. GET๊ณผ HEAD ๋ฉ์๋๋ ๋ณธ๋ฌธ์ ๊ฐ์ง ์ ์์ต๋๋ค.
[Flask] Flask framework ๋ฏธ๋ํ๋ก์ ํธ(project mars) 09 ํ๋ก์ ํธ ํ๊ณ ๋ฐฐ์ด์ , ์ด๋ ค์ ๋์
โข
๋ฐฐ์ด์ :
โฆ
project mars์ ๋น์ทํ ํ๋ก์ ํธ(๋ณต์ต)
โฆ
์น ํฌ๋กค๋ง ๊ธฐ๋ฅ ์ถ๊ฐ
โฆ
ํด๋ผ์ด์ธํธ์์๋ URL, ๋ณ์ , ๋ฆฌ๋ทฐ ๋ด์ฉ์ ๋ฐ๊ณ ์ URL์ ํตํด์ ์ํ์ ์ ๋ชฉ, ์ค๋ช
, ์ด๋ฏธ์ง URL์ ๋ฐ๊ฒ ๋๋ค. ์ด ๋ฐ์ดํฐ๋ค์ DB์ ๋ฃ์ด์ฃผ๋ ๊ธฐ๋ฅ์ ์์ฑํด์ผ ํ๋ค.
โฆ
๊ธฐ๋ฅ ๊ตฌํ์ ์ํย app.pyย ๋ถ๋ถ์ ์์ฑ ํ ๋ ์ค์ ๋ก ์๋ฌธ์๋ตํ๋ ๋ฐฉ์์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํด๋ด
โฆ
๋ฉํํ๊ทธ์ ๋ฐ์ดํฐ(๊ฐ) ๊ฐ์ ธ์ค๊ธฐ
โช
soup์ select_one()์ผ๋กย 'meta'๋ผ๋ ํ๊ทธ์ [property๊ฐog:title, og:image, og:description] ๋ถ๋ถ์ ์ฐพ์์ ์ํ๋ ๊ฐ์ด ๋ด๊ธด ['content']๋ถ๋ถ์ ๊ฐ์ ๊ฐย ogtitle,ย ogimage,ย ogdesc๋ณ์์ ๋ด๋๋ค
โข
์ด๋ ค์ด ์ :
โฆ
๋ฉํํ๊ทธ
โช
๋ฉํ ํ๊ทธ(meta tag)๋ ์นํ์ด์ง๊ฐ ๋ด๊ณ ์๋ ์ปจํ
์ธ ๊ฐ ์๋ ์นํ์ด์ง ์์ฒด์ ์ ๋ณด๋ฅผ ๋ช
์ํ๊ธฐ ์ํ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ๋๋ HTML ํ๊ทธ๋ฅผ ์๋ฏธ
โช
SNS๋ฑ์์ (๋ณธ tstory๋ ๋ง์ฐฌ๊ฐ์ง) URL๋งํฌ๋ฅผ ๊ณต์ ํ๋ฉด ํ๋จ์ ์ด๋ฏธ์ง/ํ์ดํ/๋ด์ฉ ๋ฑ์ด ๋ํ๋๋ ์๋์ ๊ฐ์ ๊ฒ๋ค์ด metaย ํ๊ทธ๋ฅผ ํตํด ๋ํ๋ ๊ฒ์ผ๋ก ์ดํดํ๋ฉด ๋๋ค.
[Flask] Flask framework ๋ฏธ๋ํ๋ก์ ํธ(project pedia) 10 ํ๋ก์ ํธ ํ๊ณ ๋ฐฐ์ด์ , ์ด๋ ค์ ๋์
































