본문 바로가기
하루하루/일상

파이썬으로 웹에 습관 추적 프로그램 올리기(맛보기)

by 오송인 2024. 1. 15.
반응형
  • 탄력적 습관을 읽다가 이 책에서 소개하는 습관 추적 양식을 웹에서 구현하면 편하겠다는 생각이 들었습니다.
  • 챗지피티를 활용하여 아래와 같은 답을 얻었습니다.

물론입니다! 파이썬으로 탄력적 습관 추적 프로그램을 구현하는 단계를 구체적으로 설명해 드리겠습니다. 초보자도 쉽게 따라할 수 있도록 하겠습니다.

  1. 환경 설정:

    • Python 설치: Python 공식 웹사이트(https://www.python.org)에서-ej5r32t/) 최신 버전의 Python을 다운로드하여 설치합니다.
    • 개발 환경 선택: 텍스트 편집기로는 Visual Studio Code, PyCharm 등을 사용할 수 있습니다.
  2. 필요한 라이브러리 설치:

    • Flask: 웹 애플리케이션을 구현하기 위한 마이크로 웹 프레임워크입니다. 터미널에서 pip install flask 명령어를 실행하여 설치합니다.
    • SQLite: 경량 데이터베이스로, 습관 추적 데이터를 저장하기 위해 사용합니다. 파이썬에 기본으로 포함되어 있습니다.
  3. 프로젝트 구조 설정:

    • 새로운 폴더를 생성하고, 해당 폴더 내에서 프로젝트를 진행합니다.
    • 해당 폴더 내에 app.py라는 파일을 생성합니다.
  4. Flask 애플리케이션 설정:

    • app.py 파일을 열고, 다음과 같이 코드를 작성합니다:

python

from flask import Flask, render_template, request
import sqlite3

app = Flask(__name__)

@app.route('/', methods=['GET', 'POST'])
def index():
    if request.method == 'POST':
        # 사용자로부터 입력 받은 습관 점수 처리
        score = request.form['score']
        # SQLite 데이터베이스에 점수 저장
        conn = sqlite3.connect('habit.db')
        c = conn.cursor()
        c.execute("INSERT INTO habits (score) VALUES (?)", (score,))
        conn.commit()
        conn.close()
    # 화면에 습관 추적 기록 표시
    conn = sqlite3.connect('habits.db')
    c = conn.cursor()
    c.execute("SELECT * FROM habits")
    habits = c.fetchall()
    conn.close()
    return render_template('index.html', habits=habits)

if __name__ == '__main__':
    app.run(debug=True)
  1. HTML 템플릿 작성:
    • templates 폴더를 생성하고, 해당 폴더 내에 index.html 파일을 생성합니다.
    • index.html 파일을 열고, 다음과 같이 코드를 작성합니다:

html

<!DOCTYPE html>
<html>
<head>
    <title>습관 추적</title>
</head>
<body>
    <h1>탄력적 습관 추적</h1>
    <form method="POST" action="/">
        <select name="score">
            <option value="1">미니</option>
            <option value="2">플러스</option>
            <option value="3">엘리트</option>
        </select>
        <input type="submit" value="점수 입력">
    </form>
    <table>
        <thead>
            <tr>
                <th>날짜</th>
                <th>점수</th>
            </tr>
        </thead>
        <tbody>
            {% for habit in habits %}
            <tr>
                <td>{{ habit[0] }}</td>
                <td>{{ habit[1] }}</td>
            </tr>
            {% endfor %}
        </tbody>
    </table>
</body>
</html>
  1. 데이터베이스 설정:
    • 터미널에서 sqlite3 habits.db 명령어를 실행하여 SQLite 데이터베이스를 생성합니다.
    • SQLite 프롬프트에서 다음과 같이 명령어를 입력하여 테이블을 생성합니다:
CREATE TABLE habits (
    date TEXT DEFAULT CURRENT_DATE,
    score INTEGER
);
  1. 애플리케이션 실행:
    • 터미널에서 python app.py 명령어를 실행하여 애플리케이션을 실행합니다.
    • 웹 브라우저에서 http://localhost:5000에 접속하여 습관 추적 애플리케이션을 사용합니다.

  • 데이터베이스를 관리할 수 있게 도와주는 SQLite 설치 단계에서 막혔으나 (쌩기초) 데이터 베이스 관리 시스템 첫걸음 - SQLite 설치 및 테이블 만들기, 지우기, 자료입력하기! - YouTube 이 영상을 보고 설치에 성공했습니다. 유학 시절에 프로그램 설치가 안 돼서 새벽 4시에 울었다는 얘기도 하시는데, 이런 어려움을 잊지 않았기에 더 친절하게 설명하는 것 같습니다.
  • SQLite에서 “Error: file is not a database” 라는 문구가 뜨면서 다음 과정을 진행할 수 없었습니다.
  • 터미널에서 "sqlite3 habits.db 명령어를 실행하여 SQLite 데이터베이스를 생성"하라고 하는데, 잘 안 되었습니다. 그래서 메모장 열고 직접 명령어를 입력한 결과 'file is not a database’라는 에러가 뜬 것 같습니다.
  • 차선책으로 위 유튜브 영상에서 설명하는 대로 .open “habit.db” 명령어로 habit.db 파일을 생성하는 데 성공했습니다. 이후 아래 이미지에서 보시는 것처럼 미리 만들어둔 habits.csv 파일을 SQLite상에서 불러오는 데 성공했습니다.


이미지가 안 보이거든 새로고침을 눌러주세요.

  • 파이썬으로 돌아가서 코드를 실행하니 아래와 같이 HTML 문서로 코드가 변환되는 것을 볼 수 있습니다. 절반의 성공입니다.

반응형

댓글