프로그래밍/Python

[Python 강의] 19강 - 웹 개발 기초

월횽 2024. 10. 24. 06:30
728x90
반응형
SMALL

안녕하세요! 그레이 해커 월횽입니다. 오늘은 Python을 활용한 웹 개발 기초에 대해 알아보겠습니다. Python은 간결하고 직관적인 문법 덕분에 웹 개발에서도 많이 사용됩니다. Python의 대표적인 웹 프레임워크로는 Flask와 Django가 있으며, 오늘은 Flask를 사용하여 간단한 웹 애플리케이션을 만드는 방법을 배워보겠습니다.

 

1. 웹 개발의 기본 개념

웹 개발에서 중요한 개념 몇 가지를 먼저 살펴보겠습니다.

· HTTP (Hypertext Transfer Protocol): 웹에서 클라이언트와 서버가 통신하는 프로토콜입니다.
· 클라이언트: 웹 브라우저와 같은 프로그램으로 서버에 요청을 보냅니다.
· 서버: 클라이언트로부터 요청을 받아 처리하고 응답을 돌려줍니다.
· 라우팅: 클라이언트의 요청에 맞는 URL 경로를 지정하고, 각 경로에 적합한 응답을 처리하는 방식입니다.

 

 

2. Flask로 웹 애플리케이션 시작하기

Flask는 가볍고 유연한 Python 웹 프레임워크로, 빠르게 웹 애플리케이션을 구축할 수 있습니다.

 

Flask 설치

먼저 Flask를 설치해야 합니다. 터미널에서 다음 명령어를 실행하세요.

pip install Flask

 

기본적인 Flask 애플리케이션
다음 코드를 통해 간단한 Flask 애플리케이션을 실행할 수 있습니다.

반응형
from flask import Flask

# Flask 인스턴스 생성
app = Flask(__name__)

# 라우팅 설정
@app.route('/')
def home():
    return '안녕하세요, Flask 웹 애플리케이션입니다!'

# 애플리케이션 실행
if __name__ == '__main__':
    app.run(debug=True)

 

위 코드를 실행한 후, 웹 브라우저에서 http://localhost:5000에 접속하면 "안녕하세요, Flask 웹 애플리케이션입니다!"라는 메시지를 볼 수 있습니다.

 

 

3. 템플릿 엔진 (Jinja2)

Flask는 Jinja2라는 템플릿 엔진을 사용하여 동적인 HTML 페이지를 쉽게 만들 수 있습니다.

 

HTML 파일 렌더링하기 예시
먼저, 애플리케이션과 같은 디렉터리에 templates 폴더를 만들고, 그 안에 index.html 파일을 생성합니다.

 

index.html 파일

<!DOCTYPE html>
<html>
<head>
    <title>Flask 웹 애플리케이션</title>
</head>
<body>
    <h1>{{ message }}</h1>
</body>
</html>

 

Flask 코드에서 이 HTML 파일을 렌더링하도록 수정합니다.

728x90
from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def home():
    return render_template('index.html', message='안녕하세요, 템플릿 엔진을 사용한 Flask 웹 애플리케이션입니다!')

if __name__ == '__main__':
    app.run(debug=True)

이제 http://localhost:5000에서 동적으로 생성된 HTML 페이지를 볼 수 있습니다.

 

 

4. HTTP 요청과 응답 처리

웹 애플리케이션은 주로 사용자의 입력을 받아 처리하는 기능이 필요합니다. Flask는 GET과 POST 요청을 모두 처리할 수 있습니다.

SMALL

폼 데이터 처리 예시

from flask import Flask, request, render_template

app = Flask(__name__)

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

@app.route('/submit', methods=['POST'])
def submit():
    name = request.form['name']
    return f'안녕하세요, {name}님!'

if __name__ == '__main__':
    app.run(debug=True)

 

 

form.html 파일

<!DOCTYPE html>
<html>
<head>
    <title>Flask 폼</title>
</head>
<body>
    <form action="/submit" method="post">
        <label for="name">이름:</label>
        <input type="text" id="name" name="name">
        <input type="submit" value="제출">
    </form>
</body>
</html>

 

사용자가 폼에 이름을 입력하고 제출하면, Flask는 해당 데이터를 받아 처리하고 사용자에게 인사를 반환합니다.

 

 

5. Flask를 사용한 간단한 API 만들기

Flask는 RESTful API를 쉽게 만들 수 있습니다. 이를 통해 웹 애플리케이션뿐만 아니라 백엔드 API도 구축할 수 있습니다.

간단한 REST API

from flask import Flask, jsonify

app = Flask(__name__)

@app.route('/api/data', methods=['GET'])
def get_data():
    data = {'name': 'Flask', 'message': 'Hello, World!'}
    return jsonify(data)

if __name__ == '__main__':
    app.run(debug=True)

 

이 코드를 실행한 후 http://localhost:5000/api/data에 접속하면 JSON 형식의 데이터를 반환받을 수 있습니다.

 

 

6. 웹 개발 기초 정리

· Flask는 간단하고 유연한 웹 프레임워크로, 빠르게 웹 애플리케이션을 개발할 수 있습니다.
· 라우팅을 통해 URL과 함수를 연결하고, 템플릿 엔진을 사용하여 동적인 HTML 페이지를 생성할 수 있습니다.
· HTTP 요청 처리와 REST API 구축을 통해 더욱 기능적인 웹 애플리케이션을 만들 수 있습니다.

 

다음 시간에는 Flask와 데이터베이스 연동에 대해 알아보겠습니다!

 

 

 

 

 

- 이전 수업 목록

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형
LIST