[Django]장고 기본 DB(SQLite)를 활용하여 연동하기

2020. 12. 16. 17:05python 전문가로/Django

반응형

안녕하세요!

웹페이지 프레임워크로 Django를 선택한 당시는 위너! ㅎㅎ 

아마 Python 언어때문에 Django 프레임워크를 선택하셨을거에요 맞죠? (아님 말구..)

저는 Python언어를 활용해서 웹페이지까지 만들 수 있다는 말에 Django를 선택했습니다!

현재 웹페이지 POC를 완료한 저로써는 매우 의미있는 작업이었다고 할 수 있는데요!

왜냐면 매우 간단하고 쉽고 특히 통계적인 부분이나 데이터분석/AI를 활용하여 웹페이지로 쉽게 보여줄 수 있어서 매우 만족했어요.

먼저, 가장 기본적인 DB(데이터베이스)연동부터 시작해볼게요!

Django는 기본적으로는 SQLite을 사용하도록 구성되어 있습니다!  SQLite는 Python에서 기본으로 제공되기 때문에 별도로 설치할 필요가 없습니다.

(다만, 방대한 서비스를 하고자 하는 분들께서는 SQLite는 지양해주세요!) 

먼저, DB Browser for SQLite 프로그램을 깔아주세요~ 

DB Browser for SQLite는 데이터 테이블을 볼 수 있는 브라우저입니다! EXCEL이나 CSV파일을 쉽게 DB에 넣을 수 있고, SQL쿼리문도 작성해서 바로 테이블을 만들 수 있어요. 그밖의 다양한 기능도 있지만 저는 가장 많이 사용한 부분은

CSV파일 import/ SQL쿼리 작성하여 테이블 만들기/ 테이블 보기 이렇게 였던 것 같아요 ㅎㅎ

sqlitebrowser.org/dl/

 

Downloads - DB Browser for SQLite

(Please consider sponsoring us on Patreon 😄) Windows Our latest release (3.12.1) for Windows: Windows PortableApp There is a PortableApp available, but it’s still the previous (3.12.0) release version. It should be updated to 3.12.1 over the next few

sqlitebrowser.org

Mac인 분들은 1개의 링크로 되어있어서 그 링크로 다운로드 받으시면 되구,

Window를 쓰시는 분들은 Standard installer for 64 bit(대부분 64bit이지만 32bit인 분들은 32bit로 다운받으셔야 합니다!)로 다운받으시면 되세요!

다운로드를 받으시면.. 이런 화면이 나와요~ (저는 이미 데이터를 추가해서 테이블들이 많이 있습니다.)

 

이렇게 넣으면 자동으로 테이블이 만들어지긴 합니다..!

하지만 자동으로 데이터타입까지 만들어지다보니, 충돌우려가 있습니다.

쫄보라서 아래의 방법으로 테이블을 만들었어요.

예를 들어서 제 데이터가 아래와 같습니다.

csv 파일

그럼 각각의 칼럼의 DataType이 있겠죠? 

Django는 데이터베이스 레이아웃을 파이썬 코드로 표현할 수 있는 models.py라는 파일이 있습니다.(Django app를 만들면 자동으로 만들어지는 친구에요! Django app만들기는 곧 올리도록 하겠습니다!) 

models.py에서 class를 만들어주세요! 모델을 정의해 보겠습니다. 본질적으로, 모델이란 부가적인 메타데이터를 가진 데이터베이스의 구조(layout)를 말한다고 합니다! 

class Alert_history(models.Model):
    date = models.CharField(max_length=30)
    alert_rating = models.FloatField()
    alert_g_spread = models.FloatField()
    alert_bm_spread = models.FloatField()
    alert_ai = models.FloatField()
    alert = models.FloatField()
    total = models.FloatField()
    region= models.FloatField()

 필드명과 데이터타입을 입력해주세요!

이 models.py가 활성화 할려면 makemigrations 을 실행해야합니다.

저는 cmder 라는 Windows 용 console emulator를 사용해서 접속했습니다.

참고: cmder cmder.net/

 

Cmder | Console Emulator

Total portability Carry it with you on a USB stick or in the Cloud, so your settings, aliases and history can go anywhere you go. You will not see that ugly Windows prompt ever again.

cmder.net

 

cmder 콘솔에서 프로젝트에 접근한 후에(프로젝트 안에 sqlite db가 있어요!)

cmder 콘솔창에

python manage.py migrate

python manage.py makegrations

2개의 명령어로 models.py를 활성화 해줍니다.(저는 이미 활성화가 되어있어서 No migrations to apply, No Change Detected라고 나옵니다!) 

python manage.py sqlmigrate board(앱이름) 0001 

라는 명령어를 치면 자동으로 SQL 쿼리문을 보여줍니다.

저 쿼리문을 복사해서 DB Browser for SQLite의 SQL실행 버튼을 눌러서 실행시켜 테이블을 만들어줍니다!

▶(실행) 버튼을 눌러주면 테이블이 만들어 지는데요~

이제 테이블의 윤곽을 잡았으니, 데이터를 넣어보도록 해요!

여기서 테이블이름을 models.py의 class이름과 같이 적어서 넣어주세요! 물론 SQL 쿼리문에서도

같은 테이블명으로 테이블을 만들었겠죠!?

자 이제 테이블이 들어와있는지 확인해볼까요?

테이블의 값들이 들어와있는걸 확인했습니다!