안녕하세요! 그레이 해커 월횽입니다. 오늘은 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 파일을 렌더링하도록 수정합니다.
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 요청을 모두 처리할 수 있습니다.
폼 데이터 처리 예시
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와 데이터베이스 연동에 대해 알아보겠습니다!
- 이전 수업 목록
'프로그래밍 > Python' 카테고리의 다른 글
[Python 강의] 21강 - 사용자 인증 및 권한 부여 (0) | 2024.10.28 |
---|---|
[Python 강의] 20강 - Flask와 데이터베이스 연동 (0) | 2024.10.25 |
[Python 강의] 18강 - 네트워킹 프로그래밍 (0) | 2024.10.23 |
[Python 강의] 17강 - 병렬 처리 및 멀티스레딩 (0) | 2024.10.22 |
[Python 강의] 16강 - 데이터베이스 관리 및 연결 (0) | 2024.10.21 |