Blog project
Database
블로그의 기본적인 페이지를 만들었습니다. 백엔드를 맡고 있는 flask 와 프론트엔드를 맡고 있는 HTML 그리로 이 두 프레임워크를 연결하기 위해 jinja 라는 파이썬 라이브러리를 사용했습니다. 더 세부적으로 만들면 프론트엔드를 좀 더 자연스럽게 만들기 위해 Bootstrap 을 그리고 디자인에는 CSS 를 좀 더 세부적으로 적용하였습니다. (시간을 단축하기 위해 강의에서 젝공하고 있는 공개되어 있는 디자인을 활용하였습니다. 공대출신에게 디자인은 다른 차원을 설명하는 수학 공식 보다 어렵습니다. )
‘데이터베이스’는 간단하게 저장을 하는 공간입니다. 컴퓨터에서 예전의 ‘하드디스크’ 요즘에는 ‘ SSD’ 같은 역할을 하는 곳입니다. 공들여 만든 여러 컨텐츠를 저장하지 않는다면 블로그의 기능을 제대로 할 수는 없습니다. 시중에는 다양한 데이터베이스가 서비스 되고 있습니다. 가장 유명한 것들로는 Oracle, MySQL, MongoDB 등이 있습니다.
다양한 데이터베이스 들이 있고 많은 서비스들이 오픈소스로 공개되어 있습니다. 이중에 블로그 프로젝트에 활용할 것은 SQLite 입니다. 만약 대규모 서비스를 운영하고자 한다면 검증되어 있는 다른 데이터 베이스를 사용해야 하겠지만 개인이 운영하는 작은 블로그에 큰 데이터베이스를 붙이는건 파리를 잡는데 대포를 사용하는 것과 같습니다. 추후에 MySQL 이나 마리아DB 같은 대규모 서비스에 맞는 데이터베이스도 설치해보는 연습을 해보겠습니다.
데이터베이스를 구성하는 기본 개념은 “CRUD” 로 요약됩니다. Create, Read, Update, Delete 의 줄임말 입니다. 사용자에 의해서 만들어진 데이터는 크게 위의 네단계를 거치는 주기를 갖습니다. 거의 모든 데이터베이스는 위의 개념위에 다양한 명령과 구조를 갖고 있습니다. 제가 실습해볼 SQLite 도 마찬가지 입니다. 자세한 내용은 SQLite 의 공식문서에 자세하에 설명되어 있습니다.
docs.python.org/ko/3/library/sqlite3.html
첫번쨰로 Create 명령을 알아 보겠습니다.
# sqlite3 모듈을 프로젝트에 불러 옵니다.
import sqlite3
# 데이터베이스 파일을 연결합니다. 없을 경우 새로 생성합니다.
conn = sqlite3.connect(‘blog.db’)
#커서를 만들어 테이블을 편집할 수 있게 합니다.
c = conn.cursor()
# 테이블을 만듭니다.
c.execute(‘’’CREATE TABLE blog(id Integer, title String, body String, author String , img_url String)’’’)
# 테이블에 자료를 입력합니다.
c.execute(“INSERT INTO blog VALUES (‘1’,’first writing,’Nothing Special’,’jisungs’, ‘https//: www.google.com’)”)
# 입력한 자료를 저장합니다.
conn.commit()
#데이터 베이스와 연결을 끊습니다.
conn.close()
두번째로 Read 명령을 알아 보겠습니다.
#열에 있는 내용을 선택합니다.
for row in con.execute(“select title , body from body”):
print(row)
이것은 하나의 예시일 뿐입니다. Excute 를 활용한 다양한 데이터 출력방법이 있습니다.
세번째로 Update 명령을 알아보겠습니다.
for row in con.execute("update title , body from body”):
print(row)
네번째로 Delete 명령을 알아 보겠습니다.
for row in con.execute("delete title ”):
print(row)
위에서 간략하게 알아 본것 처럼 명령어를 바꾸는 것 만으로 자료를 삭제하거 업데이트할 수 있습니다.
데이터베이스를 명령어로 활용할 수 있는 것 만으로도 놀라운 일이긴 하지만 매번 데이터 베이스를 수정 할때마다 연결하고 끊는 작업을 반복 하는 것은 번거롭기도 합니다. 이런 번거로움을 느낀 개발자가 아마 한두명이 아니었나 봅니다. 파이썬에서는 이 데이터베이스를 좀 더 간편하게 만들기 위한 라이버리가 개발 되어 있습니다. SQLAlchemy 입니다. 다음 글에서는 이 라이브러리에 대해 간략하게 알아보고 그 내용을 적용해 보겠습니다.
2021/02/01 - [Toy Project/Python] - Blog Project - Start
2021/02/02 - [Toy Project/Python] - Blog project - Back_end
2021/02/03 - [Toy Project/Python] - Blog project - Front-end
2021/02/04 - [Toy Project/Python] - Blog project - Bootstrap
2021/02/05 - [Toy Project/Python] - Blog project - GET/POST
'Project > Python' 카테고리의 다른 글
Blogproject - Flask-wtf (0) | 2021.03.18 |
---|---|
Blog project -SQLAlchemy (0) | 2021.02.23 |
Blog project - GET/POST (0) | 2021.02.05 |
Blog project - Bootstrap (0) | 2021.02.04 |
Blog project - Front-end (0) | 2021.02.03 |