20220331[7일차 개발일지] Flask, SQLite3

신유지·2022년 3월 31일

학습한 내용



from flask import Flask
flask 모듈 중에 Flask라는 기능을 import로 불러오는 것.
topics는 우리가 사용할 데이터베이스.
이 코드를 실행시키려면 마지막에
app.run()을 써야한다.
@app.route('')는 작은 따옴표(')사이에 있는 주소로 이동하는 동작으로 밑에 def 함수를 쓰고 return 값을 입력해 주소로 라우팅했을 때 def 함수가 실행되게 한다.
개발자들은 코드를 입력할 때, 같은 코드가 여러개있는것을 매우 싫어한다. 그래서 반복 실행되는 코드를 하나의 함수를 지정해 묶고 그 함수로 반복사용한다.
f {} 이것은 f-string이라고 하며, 변수를 지정해 우리가 저장해 놓은 데이터베이스를 불러와서 그 부분만 변환할 수 있게 하는 기능이다.
반복문은 먼저 변수를 =''으로 지정해주고 for문을 for topic in topics: 라 한다. 뜻은 topics에서 topic을 하나하나 꺼낸다는 의미.
반복문에서 if문을 사용하여 조건을 적는데, topic['id']==id: topic의 id가 id와 같을때
title=topic['title']
body=topic['body']
topic에서 그에 맞는 title을 꺼내고, body를 꺼낸다.
☞어제 내용 복습부분.


어떤 정보를 가져오는 것, 읽는 것 = GET
추가하거나 수정하거나 삭제하거나 로그인하는 것 = POST
따로 설정하지 않으면 method의 기본값은 GET이다
바꾸려면 @app.route('',methods=['POST'])라고 적어 바꿔야한다.
<'form>안에서는 method="POST"로 사용.
post방법 전송시 flask 내에 있는 request 기능 사용하여야하고,
맨 위에 form flask import request를 적고
title = request.form['title']
body = request.form['body']
이렇게 정의해서 사용하여야한다.
리스트의 맨 끝에 데이터 원소를 추가하려면 .append 함수를 사용한다.
함수 밖에서 만든 변수는 함수안에서 읽을 수 있지만 수정은 불가능하다. 수정하고싶다면 함수시작하고 나서
global 변수 라고 지정해줘야 수정할 수 있다.
title과 body를 작성하고 create를 눌렀을 때, url를 띄워주는 화면이 아닌 그 url로 바로 보내는 함수를 쓰려면 import redirect를 적고 기능을 사용해야하며, return에 redirect('') 함수를 써서 그 주소로 보내면 된다.
delete기능은 create처럼 <'a href=''>로 불러내서 하는것이 아니라, 버튼을 만들어서 하는데,
<'form action="/delete/{id}" method="POST">
<'input type="submit" value="delete">
이렇게 input type을 submit으로 한다.
여기서 id값을 Home에는 지정이 되어있지 않기때문에
template(content, id=None):
이렇게 template 함수에서 id가 none값이라고 기본값을 정해줘야한다. 아니면 값을 찾을 수 없어 에러가 난다.

오늘은 데이터베이스작업인 SQLite3를 처음으로 사용했는데, add cloumn을 클릭하여 이름, Data type, Constraints를 선택하여 데이터베이스를 설정해준다.
Data type을 INTEGER으로 하고 Constraints을 Primary Key로 설정하면 따로 데이터를 적지않아도 일련번호처럼 숫자가 차례대로 늘어난다.

만들고 나서 DDL을 누르면 다음과 같은 내용이 뜨는데 이것을 Glitch의 터미널에서 sqlite3 으로 들어가서 고대로 넣어주면 데이터로 사용할 수 있다.

insert into valuse 명령문을 사용하여 데이터추가에 성공했다.

1,2번은 직접작성한 내용이고, 3번은 명령문을 사용하여 추가한 데이터이다.

학습한 내용 중 어려웠던 점 또는 해결못한 것들

여전히 flask가 너무 어렵다. 강사님과 할 땐 똑같이 타이핑하고 얘기듣고 재미있게 수업듣는데 이해는 잘 안된다.

해결방법 작성

그래서 오늘 수업영상을 복습겸 다시 보면 이해도가 조금 더 올라간다.

학습 소감

수업했던 영상을 다시보고 이해도가 올라가는 나를 보며 더 발전할 수 있는 부분에 성취감을 느낀다. 수업이 너무 재미있지만 한 번에 이해도 힘들고 어려운 부분이 많아 차근차근 따라가면서 나를 업그레이드 시켜야겠다.

profile
성장하는 developer

0개의 댓글