Flask를 이용한 간단한 웹 애플리케이션 만들기
이전 글에서는 자동 이메일 발송 기능을 구현해 보았습니다.
이제 Python을 활용하여 간단한 웹 애플리케이션을 만들어 보겠습니다.
웹 애플리케이션을 만들기 위해 Python의 Flask 프레임워크를 사용합니다.
Flask는 가볍고 사용하기 쉬운 웹 프레임워크로, 웹 서비스를 빠르게 개발할 수 있습니다.
1. Flask란?
📌 Flask는 Python 기반의 웹 프레임워크로,
간단한 API부터 복잡한 웹 서비스까지 쉽게 개발할 수 있습니다.
✅ 장점
- 가볍고 빠르다.
- 코드가 간결하다.
- 확장성이 뛰어나다.
- Jinja2 템플릿 엔진을 지원하여 HTML과 쉽게 연동 가능
✅ Flask vs Django
Flask Django
구조 | 가벼운 마이크로 프레임워크 | 올인원 프레임워크 |
학습 난이도 | 쉬움 | 중간~어려움 |
프로젝트 크기 | 소규모~중규모 | 대규모 |
확장성 | 유연한 커스텀 가능 | 기본 기능 제공 |
2. Flask 설치하기
📌 Flask는 pip을 이용해 쉽게 설치할 수 있습니다.
pip install flask
설치가 완료되었는지 확인하려면,
python -c "import flask; print(flask.__version__)"
버전이 출력되면 성공적으로 설치된 것입니다.
3. Flask로 첫 번째 웹 서버 만들기
📌 Flask로 간단한 웹 서버 실행하기
from flask import Flask
app = Flask(__name__)
@app.route("/")
def home():
return "안녕하세요! Flask 웹 서버입니다."
if __name__ == "__main__":
app.run(debug=True)
📌 실행 방법
터미널에서 아래 명령어를 입력하세요.
python app.py
브라우저에서 http://127.0.0.1:5000/ 로 접속하면
웹 페이지에 "안녕하세요! Flask 웹 서버입니다."가 표시됩니다.
✅ Flask(__name__) → Flask 애플리케이션 생성
✅ @app.route("/") → 기본 URL("/")을 정의
✅ app.run(debug=True) → 디버그 모드 실행
4. HTML을 활용한 웹 페이지 만들기
4.1 HTML 파일 추가하기
Flask는 기본적으로 templates 폴더 안의 HTML 파일을 불러옵니다.
먼저, templates/index.html 파일을 만들고 다음과 같이 작성합니다.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>Flask 웹사이트</title>
</head>
<body>
<h1>안녕하세요! Flask 웹사이트입니다.</h1>
<p>이 페이지는 Python Flask로 만들어졌습니다.</p>
</body>
</html>
4.2 Flask에서 HTML 파일 불러오기
이제 Flask 코드에서 index.html을 불러오도록 수정합니다.
from flask import Flask, render_template
app = Flask(__name__)
@app.route("/")
def home():
return render_template("index.html") # index.html 파일을 불러옴
if __name__ == "__main__":
app.run(debug=True)
✅ render_template("index.html") → HTML 파일 렌더링
✅ templates/ 폴더 안에 HTML 파일 저장
5. 폼(Form) 데이터 입력받기
웹사이트에서 사용자로부터 입력을 받는 기능을 추가해 보겠습니다.
예를 들어, 사용자가 이름을 입력하면 환영 메시지를 보여주는 웹 페이지를 만들어 보겠습니다.
5.1 HTML 폼 생성 (templates/form.html)
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>Flask 폼 예제</title>
</head>
<body>
<h1>이름을 입력하세요</h1>
<form action="/result" method="post">
<input type="text" name="username">
<input type="submit" value="제출">
</form>
</body>
</html>
5.2 Flask에서 입력 처리 (app.py)
from flask import Flask, render_template, request
app = Flask(__name__)
@app.route("/")
def home():
return render_template("form.html")
@app.route("/result", methods=["POST"])
def result():
username = request.form["username"]
return f"안녕하세요, {username}님! 반갑습니다."
if __name__ == "__main__":
app.run(debug=True)
✅ request.form["username"] → 사용자가 입력한 값 가져오기
✅ methods=["POST"] → 데이터를 POST 방식으로 전송
6. Flask에서 데이터베이스 연동하기 (SQLite)
Flask는 SQLite와 같은 가벼운 데이터베이스를 쉽게 사용할 수 있습니다.
예제: 사용자가 입력한 이름을 DB에 저장하고, 저장된 데이터를 조회하는 기능을 만들어보겠습니다.
6.1 SQLite 데이터베이스 설정
📌 Flask에서 SQLite 데이터베이스 생성
import sqlite3
# 데이터베이스 연결 (파일이 없으면 자동 생성)
conn = sqlite3.connect("users.db")
cursor = conn.cursor()
# 테이블 생성
cursor.execute("""
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL
)
""")
conn.commit()
conn.close()
✅ sqlite3.connect("users.db") → SQLite 데이터베이스 연결
✅ CREATE TABLE IF NOT EXISTS users → 테이블 생성
6.2 사용자가 입력한 데이터 저장
📌 Flask 코드 (app.py) 수정
import sqlite3
from flask import Flask, render_template, request
app = Flask(__name__)
# 홈 페이지
@app.route("/")
def home():
return render_template("form.html")
# 데이터 저장
@app.route("/result", methods=["POST"])
def result():
username = request.form["username"]
# DB 저장
conn = sqlite3.connect("users.db")
cursor = conn.cursor()
cursor.execute("INSERT INTO users (name) VALUES (?)", (username,))
conn.commit()
conn.close()
return f"✅ {username}님이 DB에 저장되었습니다."
if __name__ == "__main__":
app.run(debug=True)
✅ INSERT INTO users (name) VALUES (?) → 사용자 입력값 DB 저장
7. 결론
이번 글에서는 Flask를 활용한 웹 애플리케이션 개발을 배웠습니다.
- Flask 기본 개념 및 설치
- 간단한 웹 서버 실행
- HTML을 활용한 웹 페이지 구성
- 사용자 입력 폼(Form) 만들기
- SQLite 데이터베이스 연동
다음 글에서는 Flask로 로그인 기능을 구현하는 방법을 배워보겠습니다! 🚀
2025.02.23 - [BIG DATA/PYTHON] - [PYTHON] Python으로 자동 이메일 발송하기 (SMTP 활용)
2025.02.23 - [BIG DATA/PYTHON] - [PYTHON] 파이썬 Selenium을 활용한 자동 웹 크롤링
2025.02.21 - [BIG DATA/PYTHON] - [PYTHON] 파이썬을 활용한 웹 크롤링(Web Crawling) 기초
[PYTHON] 파이썬을 활용한 웹 크롤링(Web Crawling) 기초
파이썬을 활용한 웹 크롤링(Web Scraping) 기초인터넷에는 다양한 데이터가 존재합니다.하지만 모든 데이터를 직접 다운로드할 수 있는 것은 아니므로, **웹 크롤링(Web Scraping)**을 사용하여 원하는
englishforkid.tistory.com
'BIG DATA > PYTHON' 카테고리의 다른 글
[PYTHON] Flask와 Bootstrap을 활용한 UI 개선 (0) | 2025.02.27 |
---|---|
[PYTHON] Flask로 로그인 기능 구현하기 (세션 활용) (0) | 2025.02.27 |
[PYTHON] Python으로 자동 이메일 발송하기 (SMTP 활용) (0) | 2025.02.24 |
[PYTHON] 파이썬으로 자동화된 데이터 보고서 생성하기 (0) | 2025.02.23 |
[PYTHON] 파이썬 Selenium을 활용한 자동 웹 크롤링 (0) | 2025.02.23 |