파이썬 플라스크 웹 앱 개발 입문: 초보자를 위한 친절한 안내

파이썬 플라스크 웹 앱 개발 입문: 초보자를 위한 친절한 안내

웹 개발에 대한 관심이 높아지면서 파이썬을 이용한 웹 개발이 인기를 얻고 있습니다. 특히 플라스크는 간결하고 유연한 웹 프레임워크로, 초보 개발자들이 웹 개발을 시작하기에 적합합니다.

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 파일에서 파이썬 코드를 삽입하여 동적으로 콘텐츠를 생성할 수 있습니다.


My Website

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, `