파이썬 플라스크 웹 앱 개발 입문: 초보자를 위한 친절한 안내
웹 개발에 대한 관심이 높아지면서 파이썬을 이용한 웹 개발이 인기를 얻고 있습니다. 특히 플라스크는 간결하고 유연한 웹 프레임워크로, 초보 개발자들이 웹 개발을 시작하기에 적합합니다.
1, 플라스크란 무엇일까요?
플라스크는 파이썬으로 만들어진 경량 웹 애플리케이션 프레임워크입니다. 플라스크는 최소한의 기능만 제공하여 개발자가 필요에 따라 기능을 확장할 수 있도록 설계되었으며, 유연하고 확장성이 뛰어나다는 장점을 가지고 있습니다.
플라스크의 주요 특징
- 최소한의 기능 제공: 플라스크는 기본적인 기능만 제공하며, 개발자는 필요에 따라 추가 기능을 자유롭게 선택하여 확장할 수 있습니다.
- 마이크로 프레임워크: Django와 같은 다른 웹 프레임워크에 비해 기능이 간소화되어 빠른 개발과 배포가 가능합니다.
- MVC 아키텍처: 모델-뷰-컨트롤러 아키텍처를 따르고 있어 웹 애플리케이션을 체계적으로 구성할 수 있습니다.
- 유연성: 플라스크는 다양한 라이브러리와 함께 사용할 수 있으며, 사용자의 요구에 맞게 자유롭게 커스터마이징할 수 있습니다.
2, 플라스크 개발 환경 설정
플라스크 개발을 시작하기 전에 먼저 개발 환경을 설정해야 합니다.
1, Python 설치:
먼저 파이썬을 설치해야 합니다. 공식 웹사이트에서 운영체제에 맞는 버전을 다운로드하고 설치할 수 있습니다.
2, 플라스크 설치:
파이썬이 설치된 상태에서 다음 명령어를 통해 플라스크를 설치할 수 있습니다:
bash
pip install Flask
3, 가상 환경 생성 (선택 사항):
가상 환경은 프로젝트별로 독립적인 개발 환경을 유지하기 위해 사용됩니다. venv
모듈을 사용하여 가상 환경을 생성할 수 있습니다:
bash
python -m venv my_env
4, 가상 환경 활성화:
생성된 가상 환경을 활성화합니다. 운영체제에 따라 활성화 명령어가 다를 수 있습니다.
bash
윈도우
my_env\Scripts\activate
맥/리눅스
source my_env/bin/activate
3, 첫 번째 플라스크 애플리케이션 만들기
이제 플라스크로 간단한 웹 애플리케이션을 만들어보겠습니다.
python
from flask import Flask
app = Flask(name)
@app.route(‘/’)
def hello_world():
return ‘Hello, World!’
if name == ‘main‘:
app.run(debug=True)
파일 저장
위 코드를 app.py
라는 파일로 저장합니다.
실행
터미널에서 다음 명령어를 실행하여 웹 애플리케이션을 실행합니다:
bash
python app.py
웹 브라우저에서 http://127.0.0.1:5000/
주소를 입력하면 “Hello, World!”가 출력됩니다.
코드 설명
from flask import Flask
: 플라스크 라이브러리에서Flask
클래스를 불러옵니다.app = Flask(__name__)
: 플라스크 애플리케이션 인스턴스를 생성합니다.__name__
은 현재 모듈의 이름을 나타내며, 플라스크가 정적 파일의 위치를 찾는 데 사용됩니다.@app.route('/')
: 루트 경로 (/
)에 대한 요청을 처리하는 함수를 정의합니다.def hello_world():
:/
경로로 요청이 들어오면 실행되는 함수입니다.return 'Hello, World!'
: 응답으로 “Hello, World!” 문자열을 반환합니다.if __name__ == '__main__':
: 이 조건문은 스크립트가 직접 실행될 때만 코드를 실행하도록 합니다.app.run(debug=True)
: 웹 애플리케이션을 디버그 모드로 실행합니다. 디버그 모드에서는 코드 오류가 발생하면 웹 브라우저에서 오류 정보가 표시됩니다.
4, 플라스크 기본 기능
플라스크는 기본적으로 다음과 같은 기능을 제공합니다.
1, 경로 처리 (Routing):
플라스크는 URL 경로와 함수를 연결하여 요청을 처리하는 경로 처리 시스템을 제공합니다. 위 예제에서 @app.route('/')
데코레이터는 /
경로를 hello_world
함수와 연결합니다.
python
@app.route(‘/about’)
def about():
return ‘This is the About page’
@app.route(‘/contact’)
def contact():
return ‘This is the Contact page’
2, 템플릿 엔진:
플라스크는 Jinja2라는 템플릿 엔진을 사용하여 동적 HTML 콘텐츠를 생성할 수 있습니다. 템플릿 엔진을 사용하면 HTML 파일에서 파이썬 코드를 삽입하여 동적으로 콘텐츠를 생성할 수 있습니다.
Welcome to my website!
This is a simple example of a Flask application.
>
3, HTTP 요청 처리:
플라스크는 HTTP 요청을 처리하는 기능을 제공합니다. request
객체를 통해 HTTP 요청의 정보에 접근할 수 있습니다.
python
from flask import request
@app.route(‘/profile’)
def profile():
username = request.args.get(‘username’)
if username:
return f’Welcome, {username}!’
else:
return ‘Please provide a username.’
4, 응답 처리:
플라스크는 HTTP 응답을 생성하는 기능을 제공합니다. render_template
함수를 사용하여 템플릿 파일을 렌더링하고 HTML 응답을 생성할 수 있습니다. jsonify
함수를 사용하여 JSON 응답을 생성할 수 있습니다.
python
from flask import render_template, jsonify
@app.route(‘/data’)
def data():
data = {‘name’: ‘John Doe’, ‘age’: 30}
return jsonify(data)
5, 세션 (Session):
세션은 사용자의 정보를 저장하는 데 사용됩니다. 플라스크는 세션을 처리하는 기능을 제공하며, session
객체를 통해 세션에 접근할 수 있습니다.
python
from flask import session
@app.route(‘/login’)
def login():
username = request.form.get(‘username’)
password = request.form.get(‘password’)
if username == ‘user’ and password == ‘password’:
session[‘username’] = username
return redirect(‘/dashboard’)
else:
return ‘Invalid username or password’
@app.route(‘/dashboard’)
def dashboard():
username = session.get(‘username’)
if username:
return f’Welcome, {username}!’
else:
return redirect(‘/login’)
5, 플라스크 웹 사이트 구축
이제 플라스크를 사용하여 간단한 웹 사이트를 만들어보겠습니다.
1, 폴더 구조:
mywebsite/
├── app.py
├── templates/
│ └── index.
└── static/
└── styles.css
2, app.py
:
python
from flask import Flask, render_template
app = Flask(name)
app.config[‘SECRET_KEY’] = ‘your-secret-key’
@app.route(‘/’)
def index():
return render_template(‘index.’)
if name == ‘main‘:
app.run(debug=True)
**
3, `