[Python] Flask ๊ธฐ์ดˆ ๋ฐฐ์šฐ๊ธฐ: Python์œผ๋กœ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ

2025. 1. 16. 15:17ยท๐Ÿงฉ Language/Python
728x90
๋ฐ˜์‘ํ˜•

 

โ€ป SK ์‰ด๋”์Šค ๋ฃจํ‚ค์ฆˆ 24๊ธฐ (ํด๋ผ์šฐ๋“œ๊ธฐ๋ฐ˜ ์Šค๋งˆํŠธ ์œตํ•ฉ๋ณด์•ˆ ๊ณผ์ •) ๊ต์œก์„ ๋“ค์œผ๋ฉด์„œ ์ž‘์„ฑํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

 

Flask๋Š” ํŒŒ์ด์ฌ์œผ๋กœ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๊ฐ„๋‹จํ•˜๊ณ  ๊ฐ€๋ฒผ์šด ๋งˆ์ดํฌ๋กœ ์›น ํ”„๋ ˆ์ž„์›Œํฌ์ž„

์ดˆ๋ณด์ž๋„ ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด ๋น ๋ฅด๊ฒŒ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๊ธฐ์— ์ ํ•ฉํ•จ

 


1๏ธโƒฃ Flask๋ž€?

Flask๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŠน์ง•์„ ๊ฐ€์ง:

  • ๊ฒฝ๋Ÿ‰ ํ”„๋ ˆ์ž„์›Œํฌ: ๋ถˆํ•„์š”ํ•œ ์š”์†Œ ์—†์ด ํ•ต์‹ฌ ๊ธฐ๋Šฅ๋งŒ ์ œ๊ณต
  • ํ™•์žฅ์„ฑ: ํ•„์š”ํ•œ ๊ฒฝ์šฐ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด๋‚˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ๊ธฐ๋Šฅ ํ™•์žฅ ๊ฐ€๋Šฅ
  • ์ง๊ด€์ ์ธ ์‚ฌ์šฉ๋ฒ•: ๊ฐ„๋‹จํ•œ API์™€ ๊ตฌ์กฐ๋กœ ์ดˆ๋ณด์ž๋„ ์‰ฝ๊ฒŒ ์ ‘๊ทผ ๊ฐ€๋Šฅ

2๏ธโƒฃ Flask ์„ค์น˜ํ•˜๊ธฐ

Flask๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋จผ์ € Python์ด ์„ค์น˜๋˜์–ด ์žˆ์–ด์•ผ ํ•จ

pip install flask

 


3๏ธโƒฃ Hello, Flask! ์ฒซ ๋ฒˆ์งธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜

๐Ÿ–ฅ๏ธ ์ฝ”๋“œ ์ž‘์„ฑ

๋‹ค์Œ์€ Flask๋กœ ๊ฐ„๋‹จํ•œ ์›น ์„œ๋ฒ„๋ฅผ ๋งŒ๋“œ๋Š” ์ฝ”๋“œ์ž„

from flask import Flask

app = Flask(__name__)  # Flask ์•ฑ ์ƒ์„ฑ

@app.route("/")  # ๊ธฐ๋ณธ ๊ฒฝ๋กœ('/')์— ๋Œ€ํ•œ ์š”์ฒญ ์ฒ˜๋ฆฌ
def home():
    return "Hello, Flask! ๐ŸŒŸ"

if __name__ == "__main__":
    app.run(debug=True)  # ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰

๐ŸŒ ์›น ํŽ˜์ด์ง€ ์ ‘์†

 


4๏ธโƒฃ Flask์˜ ์ฃผ์š” ๊ตฌ์„ฑ ์š”์†Œ

๐Ÿ”น 1. ๋ผ์šฐํŒ… (Routing)

๋ผ์šฐํŒ…์€ URL๊ณผ ์‹คํ–‰ํ•  ํ•จ์ˆ˜๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ์—ญํ• ์„ ํ•จ

@app.route("/second")
def hello():
    return '<h1>This is Second page!</h1>'
  • /second ๊ฒฝ๋กœ์— ์ ‘์†ํ•˜๋ฉด This is Second page!๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ์ถœ๋ ฅ๋จ.

 


๐Ÿ”น 2. ํ…œํ”Œ๋ฆฟ (Templates)

Flask๋Š” HTML ํ…œํ”Œ๋ฆฟ ํŒŒ์ผ๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ.

  • ํ…œํ”Œ๋ฆฟ ํŒŒ์ผ ์ƒ์„ฑ:
    /templates/home.html
<!DOCTYPE html>
<html>
<head>
    <title>Welcome</title>
</head>
<body>
    <h1>Welcome, {{ name }}!</h1>
</body>
</html>
  • Flask์—์„œ ํ…œํ”Œ๋ฆฟ ๋ Œ๋”๋ง: 
from flask import Flask, render_template

app = Flask(__name__)

@app.route("/")
def home():
    return render_template("home.html", name="HEE")
  • ์ ‘์†ํ•˜๋ฉด html ํ…œํ”Œ๋ฆฟ์— ์ž‘์„ฑํ–ˆ๋˜ ์„œ์‹์œผ๋กœ ์ถœ๋ ฅ๋จ


๐Ÿ”น 3. HTTP ๋ฉ”์„œ๋“œ ์ฒ˜๋ฆฌ

Flask๋Š” GET, POST ๋“ฑ์˜ HTTP ๋ฉ”์„œ๋“œ๋ฅผ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ

from flask import request

@app.route("/submit", methods=["GET", "POST"])
def submit():
    if request.method == "POST":
        return "Form submitted!"
    return "Submit your form here!"
  • GET ์š”์ฒญ

  • POST ์š”์ฒญ


 

728x90
๋ฐ˜์‘ํ˜•

'๐Ÿงฉ Language > Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Python] Faker๋ฅผ ์ด์šฉํ•œ ๊ฐ€์งœ ๋ฐ์ดํ„ฐ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•  (1) 2025.01.17
[Python] Flask๋กœ ๊ฐ„๋‹จํ•œ RSS ๋ฆฌ๋” ํŽ˜์ด์ง€ ๊ตฌํ˜„ํ•˜๊ธฐ  (2) 2025.01.16
[Python] FTP ํ”„๋กœํ† ์ฝœ ์—ฐ๊ฒฐ ๋ฐ ์ž๋™ํ™”  (0) 2025.01.16
ํŒŒ์ด์ฌ ์—‘์…€ ๋ฌธ์„œ ์ž๋™ํ™”  (0) 2025.01.16
Python ์›น ์Šคํฌ๋ž˜ํ•‘ (2) Requests ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ  (0) 2025.01.16
'๐Ÿงฉ Language/Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [Python] Faker๋ฅผ ์ด์šฉํ•œ ๊ฐ€์งœ ๋ฐ์ดํ„ฐ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•
  • [Python] Flask๋กœ ๊ฐ„๋‹จํ•œ RSS ๋ฆฌ๋” ํŽ˜์ด์ง€ ๊ตฌํ˜„ํ•˜๊ธฐ
  • [Python] FTP ํ”„๋กœํ† ์ฝœ ์—ฐ๊ฒฐ ๋ฐ ์ž๋™ํ™”
  • ํŒŒ์ด์ฌ ์—‘์…€ ๋ฌธ์„œ ์ž๋™ํ™”
WISHee
WISHee
IT์™€ ๋ณด์•ˆ์— ๋Œ€ํ•œ ๊ณต๋ถ€ ๊ธฐ๋ก์„ ์ฐจ๊ณก์ฐจ๊ณก ์Œ“์•„๊ฐ€๋Š” ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ ๐Ÿ›ก๏ธ๐Ÿ’ป
  • WISHee
    DevwithWish
    WISHee
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๐ŸŒณ ROOT (128)
      • โ›“๏ธ ๋„คํŠธ์›Œํฌ ๋ณด์•ˆ (10)
        • ๊ธฐ๋ณธ ๊ฐœ๋… (9)
        • ํŒจํ‚ท ๋ถ„์„ (1)
        • ์นจ์ž… ํƒ์ง€ ๋ฐ ๋ฐฉ์ง€ (0)
      • โš™๏ธ ์‹œ์Šคํ…œ ๋ณด์•ˆ (0)
        • ์šด์˜์ฒด์ œ ๋ณด์•ˆ (0)
        • ์ทจ์•ฝ์  ๋ถ„์„ (0)
        • ๋กœ๊ทธ ๋ถ„์„ (0)
      • ๐ŸŒ ์›น ๋ณด์•ˆ (1)
        • OWASP TOP 10 (1)
        • ์›น ์„œ๋ฒ„ ๋ณด์•ˆ (0)
        • ์›น ์ทจ์•ฝ์  ๋ถ„์„ (0)
      • โ˜๏ธ ํด๋ผ์šฐ๋“œ ๋ณด์•ˆ (3)
        • AWS (3)
      • ๐Ÿ” ์•”ํ˜ธํ™” & ์ธ์ฆ (3)
        • ์•”ํ˜ธํ™” ๊ฐœ๋… (2)
        • TLS,SSL (0)
        • ์ธ์ฆ & ์ ‘๊ทผ์ œ์–ด (1)
      • ๐Ÿšจ ๋ณด์•ˆ ์‹ค๋ฌด (30)
        • ๋ณด์•ˆ ๊ด€์ œ (14)
        • ๋ชจ์˜ ํ•ดํ‚น (12)
        • ์ทจ์•ฝ์  ์ง„๋‹จ (3)
        • ๋””์ง€ํ„ธํฌ๋ Œ์‹ (1)
      • ๐Ÿ“š ISMS & ISO27001 (9)
        • ISMS, ISMS-P ์ธ์ฆ (2)
      • ๐Ÿ“ฐ ๋ณด์•ˆ ๋‰ด์Šค & ํŠธ๋ Œ๋“œ (1)
        • ์ตœ์‹  ๋ณด์•ˆ ์ด์Šˆ (1)
        • ์‚ฌ์ด๋ฒ„ ์œ„ํ˜‘ ์ •๋ณด (0)
        • ๋ณด์•ˆ ์ปจํผ๋Ÿฐ์Šค ๋ฆฌ๋ทฐ (0)
      • ๐Ÿ”ฅ SKShieldusRookies (15)
        • Review (3)
        • PBL (0)
        • ๊ณผ์ œ (4)
        • ๋ชจ๋“ˆ ํ”„๋กœ์ ํŠธ (8)
        • ์ตœ์ข… ํ”„๋กœ์ ํŠธ (0)
      • ๐Ÿ—‚๏ธ Project (3)
        • SOAR (0)
        • BlockChain (3)
      • ๐Ÿงฉ Language (23)
        • Java (1)
        • Python (16)
        • Programmers (6)
      • ๐Ÿ‘ฅ ๋ฒ„์ „๊ด€๋ฆฌ & ํ˜‘์—…๋„๊ตฌ (9)
        • Git, GitHub (4)
        • etc (5)
      • ๐Ÿ’œ ์ผ์ƒ (21)
        • Boot Camp (4)
        • Study (6)
        • Travel (8)
        • Study Abroad (3)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

    • GitHub
  • ๊ณต์ง€์‚ฌํ•ญ

    • ๋ฐ˜๊ฐ‘์Šต๋‹ˆ๋‹ค!
  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ์˜นํ”Œ๋ขฐ๋ฅด
    ์œˆ๋„์šฐ๋ณด์•ˆ
    ๋ธ”๋ก์ฒด์ธ์‹ค์Šต
    git
    ํŒŒ์ด์ฌ
    Python
    ์œ ๋Ÿฝํ•œ๋‹ฌ์—ฌํ–‰
    ์ฝ”๋”ฉํ…Œ์ŠคํŠธ
    ์ •๋ณด๋ณด์•ˆ
    ๋ชฝ์ƒ๋ฏธ์…ธ
    ํŒŒ๋ฆฌ์—ฌํ–‰
    Github
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
    ์™€์ด์–ด์ƒคํฌ
    ๋ณด์•ˆ์‹ค์Šต
    ๊นƒํ—ˆ๋ธŒ
    ํ”„๋ž‘์Šค์—ฌํ–‰
    ํ”Œ๋ผ์Šคํฌ
    sk์‰ด๋”์Šค๋ฃจํ‚ค์ฆˆ
    ๋ฆฌ๋ˆ…์Šค๋ณด์•ˆ
    ์นผ๋ฆฌ๋ฆฌ๋ˆ…์Šค
    ํ•ด์™ธ์—ฌํ–‰
    ๋ชจ์˜ํ•ดํ‚น
    ํ•œ๋‹ฌ์—ฌํ–‰
    flask
    ์œ ๋Ÿฝ์—ฌํ–‰
    slack
    ํ˜‘์—…๋„๊ตฌ
    ๋Ÿฐ๋˜์—ฌํ–‰
    VSCode
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • 160x600
    250x250
  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
WISHee
[Python] Flask ๊ธฐ์ดˆ ๋ฐฐ์šฐ๊ธฐ: Python์œผ๋กœ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”