flask TODO list -1 (DB 연결해서 내용 가져오기)

1 minute read

개발환경 : Windows10, vscode

언어 및 프레임워크 : Python3, Flask

GIthub repository : YChaeeun/todoList_web

디자인 및 화면 구성하기

todo_plan

PPT에 간단한 디자인 구상과 기능을 적어놓고, html와 css, bootstrap4로 만들어보았다.

DB 연결하기 _ 할 일 내용 가져오기

간단한 틀이 만들어져서, 해야할 일 목록 내용과 중요도를 가져오는 것부터 시작했다. 아직 값이 없기 때문에 DB에 미리 값들을 넣어놨다.

1) MySql 연결하기

database/connection.py

import pymysql

def get_connection():
    conn = pymysql.connect(host='127.0.0.1', user='guest', password='#', db='todolist_db', charset='utf8')
    return conn

todolist.sql

create database todolist_db
use todolist_db

create table todo(
    todo_idx int auto_increment primary key,
    todo_content varchar(500) not null,
    todo_status int not null,
    todo_importance int not null
);

todo_DB

임의의 값을 넣어놓았다!

insert into todo (todo_content, todo_status, todo_importance)
value("저녁 챙겨먹기", 1, 0)

2) 쿼리문 작성해서 내용 가져오기

일단 다른 기능들은 생각하지 않고, 내용과 중요도(숫자)만 가져오는 쿼리문을 작성했다.

제일 최근에 작성한 목록부터 가져오기 위해 order by todo_idx desc

database/todo_list_dao.py

import pymysql
from database import connection

# 해야 할 일 내용 가져오기
# 최근에 작성된 순서대로 
def get_todolist():
    conn = connection.get_connection()

    sql = '''
        select todo_content, todo_importance
        from todo
        where todo_status = 1
        order by todo_idx desc
    ''' 

    cursor = conn.cursor()
    cursor.execute(sql)
    row = cursor.fetchall()

    data_list = []

    for obj in row :
        data_dic = {
            'todo_content' : obj[0],
            'todo_importance' : obj[1]
        }
        data_list.append(data_dic)
    
    conn.close

    return data_list

3) html 파일에 가져온 정보를 넣기

현재 날짜도 가져오려고 했는데 자꾸 오류가 나거나 값이 넣어지지 않아서 어떻게 하면 좋을 지 생각해봐야 할 것 같다.

main.py

@app.route('/')
def index():

    content_list=todo_list_dao.get_todolist()

    # now = datetime.today()
    # content_list.append(now)

    html = render_template('index.html', data_list=content_list)
    return html

index.html






todo_list_1

Comments