๐Ÿ ๊ธฐํƒ€/์ŠคํŒŒ๋ฅดํƒ€์ฝ”๋”ฉํด๋Ÿฝ_FE

์›น๊ฐœ๋ฐœ ์ข…ํ•ฉ๋ฐ˜ | Flask ์‚ฌ์šฉํ•˜๊ธฐ

Dhey 2021. 12. 27. 13:16
๋ฐ˜์‘ํ˜•
Flask
๊ฐ„๋‹จํ•œ ์›น ์‚ฌ์ดํŠธ, ํ˜น์€ ๊ฐ„๋‹จํ•œ API ์„œ๋ฒ„๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ์— ํŠนํ™” ๋˜์–ด์žˆ๋Š”
Python Web Framework

 

· Flask ํ”„๋ ˆ์ž„์›Œํฌ : ์„œ๋ฒ„๋ฅผ ๊ตฌ๋™์‹œ์ผœ์ฃผ๋Š” ํŽธํ•œ ์ฝ”๋“œ ๋ชจ์Œ (ํฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ)

 

 

# Flask ๊ธฐ๋ณธ ์‹œ์ž‘ ์ฝ”๋“œ

from flask import Flask
app = Flask(__name__)

@app.route('/')
def home():
   return 'This is Home!'

if __name__ == '__main__':  
   app.run('0.0.0.0',port=5000,debug=True)

 

 

# Flask ๊ธฐ๋ณธ ํด๋” ๊ตฌ์กฐ

  - Flask ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค ๋•Œ, ํ•ญ์ƒ ํ”„๋กœ์ ํŠธ ํด๋” ์•ˆ์—

     ใ„ดstatic ํด๋”  (์ด๋ฏธ์ง€, css ํŒŒ์ผ์„ ๋„ฃ์–ด ๋‘ )

     ใ„ดtemplates ํด๋”  (html ํŒŒ์ผ์„ ๋‹ด์•„๋‘๊ณ , ๋ถˆ๋Ÿฌ์˜ค๋Š” ์—ญํ• )

     ใ„ดapp.py ํŒŒ์ผ

    ์ด๋ ‡๊ฒŒ ์„ธ ๊ฐœ๋ฅผ ๋งŒ๋“ค๊ณ  ์‹œ์ž‘ํ•˜์ž.

 

 

# HTML ํŒŒ์ผ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

templates ํด๋”์— index.html์ด๋ผ๋Š” ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ๋„ฃ๊ณ 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>๋‚˜์˜ ์ฒซ ์›น ํŽ˜์ด์ง€</h1>
    <button>๋ฒ„ํŠผ์„ ๋งŒ๋“ค์ž</button>
</body>
</html>

 

app.py์— return ๊ฐ’์œผ๋กœ flask ๋‚ด์žฅํ•จ์ˆ˜ render_template๋ฅผ ์ด์šฉํ•˜์—ฌ htmlํŒŒ์ผ์„ ๋ถˆ๋Ÿฌ์˜จ๋‹ค.

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def home():
    return render_template('index.html')

if __name__ == '__main__':
    app.run('0.0.0.0', port=5000, debug=True)

 

์‹คํ–‰์‹œํ‚ค๋ฉด inetx.html์— ์ž‘์„ฑํ•œ ์ฝ”๋“œ ๊ฒฐ๊ณผ ๊ฐ’์ด ์„œ๋ฒ„์— ์ถœ๋ ฅ๋œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

* ์‹คํ–‰ ์‹œ์ผœ์„œ localhost:port๋ฒˆํ˜ธ๋ฅผ ์ณ์„œ ์–ป์€ ๊ฒฐ๊ณผ๋Š” server๊ฐ€ ๋‚˜ํ•œํ…Œ ์ค€๊ฒƒ -> ๋งํฌ๋ฅผ ์ฃผ๋ฉด ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค๋„ ๋ณผ์ˆ˜ ์žˆ์Œ

  ํฌ๋กฌ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์„œ ์–ป์€ ๊ฒฐ๊ณผ๋Š” ๊ทธ๋ƒฅ ๋‚ด ์ปดํ“จํ„ฐ์— ์žˆ๋Š” ํŒŒ์ผ์„ ์—ฐ๊ฒƒ -> ๋‹ค๋ฅธ์‚ฌ๋žŒ์€ ๋ชป๋ด„

 

 

๋ฐ˜์‘ํ˜•