[개발일지-8]Glitch.com과 SQLite3를 이용한 Database와 Python 연동법

PARK's Marketing & HTML·2022년 4월 3일
0

Junhyeong's 개발일지

목록 보기
8/8

학습내용

오늘은 어제 수업 종료 직전에 다룬 SQLite3를 바탕으로 DB를 Python에 연동시키는 법에 대해 배웠다.




코드가 길다. 어제 했던 코드와는 많이 다를것이다.
파일 목록에도 create.py와 read.py가 생성되었다.
Db연동법을 설명하시면서 terminal을 이용해 db를 만들고 table을 만들었다.
sqlite3라고 타이핑해서 넣고 db.sqlite라는 명령을 내린뒤 만들어주면 끝.

.open db.sqlite3라는 파일을 열어서 읽는뜻이라고 한다. 없다면 만들어 준다!
이제부터 모든 명령은 db.sqlite3에 저장된다.
적다만 CREATE는 표를 생성하기위한 코드이다.
CREATE TABLE topics (
id INTEGER PRIMARY KEY,
title TEXT NOT NULL,
body TEXT
);
이러한 코드를 적고 엔터를 친 다음 표를 준비한다.
나는 컴퓨터 오류로 수업에 따라가기 힘들어서 이 후 과정은 기억나는대로 타이핑하여 진행했다.
만든 뒤 SELET * FROM topics라고 하면 우리가 입력한 데이터가 나온다.



이 사진의 코드는 read.py라는 파일의 코드이다.
conn은 connect로 해석하고 curor은 그냥 cursor치려다 오타나서 그대로 함수를 만들어 진행한것이다. conn은 연결시켜 파일을 열고 cursor는 하나하나 체크하면서 확인하는?그런 개념으로 해석된다고 한다.

혹시모르니까 .schema tables를 입력해서 table이 나오나 확인 필요!

저 코드를 작성하고 terminal에 python3 read.py를 읽는 명령을 입력하면


이런식으로 결과가 뜬다.


python으로 데이터를 추가해보는 방법도 배운다. create.py라는 파일을 glitch에서 만들고

다음과 같은 코드를 작성한다.
그리고 python3 create.py(visualcode의 teminal처럼)입력후 실행하면
data를 입력하라는 창이 뜬다. 거기에 title과 body에 맞는 데이터를 입력하면 데이터가 저장되어 출력되는걸 확인 할 수 있다.


다음 19번줄의 코드는 db에서 topics에 해당되는 topics table의 모든 행과 열을 다 읽어온다고 한다. 읽어온 값을 python에 data structure로 converting해주는 명령이라고한다.

fetchall이라는 함수는 db에 있는 정보를 가져와서 python화 시키는 명령. 나는 db의 topics를 python화 시킨다로 이해했다.

69번째 줄의 fetchone도 비슷한 이유지만, 하나의 데이터를 가져와야한다.
68번째 줄 맨 뒤의 id가 앞으로 들어와서 1건의 데이터를 가져올때 쓰이는 역할이다.

강사님은 예시로 print topic을 쳐서 log로 보여주셨다. fetchone을 실행하면

이러한 결과가 나온다.

fetchall은 반대로 li안에 결과가 나온다. 그렇기 때문에 일일히 꺼내어 줘야하는데, 그런 과정을 생략하고 간단히 하기위해 fetchone을 쓰는것.

이 과정까지의 topic을 찾는 과정을, 지난 글에서 for in문을 작성한 뒤 if문으로 조건을 걸어 출력되게 만들었는데, Db를 알았으니 어제 작성한 코드는 무용지물이 되었다.


sqlite3에서 id를 다루는 방식도 조금은 다르다.
92번줄에서 excute를 받은 뒤
93번 줄에서 lastrowid를 써서 id를 바로 받는다. 모든 db와 모든 db를 사용하는 libarary는 저런 기능을 가지고 있다고 한다. 그럼 return에서 쓰는 nextid(어제 작성했던 nextid)가 필요가 없어지고, 위쪽에서 선언한 nextid도 지워준다.

delete키의 코드도 위와 같은 이론을 바탕으로 수정해본다. INSERT INTO topics는 DELETE FROM topics로 변경해주고 lastrowid는 지워도 된다.

--

강사님의 교육이 끝나기 전 html에서 배웠던 사이트를 조금 꾸며주는 css를 써본다. 26~58번줄 까지인데, visual code 프로그램과는 조금 다르다.
31번처럼 중괄호를 두개 써줘야한다. 이외에는 알다시피 html -> head -> style -> 적용할태그-> border-bottom....을 적용시키자.

28,29번줄은 좀 생소할텐데, bootstrap.com에서 가져온 링크를 넣어 준 것이다.
넣어주면 웹사이트가 시작 될 때 bootstrap.css 파일과 bootstrap.js 파일이 다운된다. 그렇게 되면 우리가 저 파일을 사용 할 수있는 준비가 된것.

예시를 위해 bootstrap의 container 배너에 들어가 페이지의 내용을 가운데로 정렬하게 만들어 보자. 39번줄 처럼 body태그의 class값을 container로 주고 저장하면


이렇게 저장된다.


hihihi라는 li 생성, delete 키 작동에 관한 사진이다.

어려웠던 점

많은 함수와 변수가 나와서 뭐가 뭔지 이해하기가 어려웠다.
code가 html처럼 적으면 안되기에 python의 문법으로 적는 연습이 필요했다.

해결방법

복습 또 복습

학습소감

오늘 강사님의 마지막 수업날이었다.
강사님의 친절함과 배려, 선함이 느껴져서 더욱 더 수업에 집중할 수 있었다.
이러한 강사님을 초빙한 aischool에도 감사하고, 학교 다닐때 재미없고 머리아파서 하지 않았던 코딩에 흥미를 느끼게 해주신 강사님에게도 무한히 감사를 보내고 싶다. 아무리 인터넷으로 2주간 수업들은 입장이라고는 하지만 이별이라는 단어는 사람에게 언제나 씁쓸한것같다. 하지만 그만큼 다음주의 강의가 또 기대된다!
강사님 감사합니다 언제나 행복하고 건강하세요!

profile
22.03~22.08 대구 Ai스쿨 프로덕트 마케터 과정 수강

0개의 댓글