백엔드 개발/Python,django

[Django]Django 데이터베이스 다루기

독학하는 정호빈 2022. 3. 29. 14:07

안녕하세요. 코딩을 독학하고 있는 정호빈입니다.

이번에는 장고에서 지원하는 데이터베이스에 대해 알아볼 건데요. 일반적으로 데이터베이스와 연동을 할 땐 데이터베이스 연결 함수라던지 드라이브를 설치해서 사용하고 sql을 주로 사용했습니다. 하지만 이러한 부분에서 sql코드와 일반적인 코드가 합쳐져서 복잡해질 수 있는데요. 이러한 부분을 간결하게 만들어주기 위해 ORM(Object Relational Mapping)을 사용합니다. 객체라는 클래스와 데이터에 대한 테이블을 자동으로 연결시켜 굳이 sql을 사용하지 않고도 데이터베이스를 다룰 수 있게 됩니다.

 

이전 내용

https://seongjangjhb.tistory.com/40

 

[Django]Django 공통코드 관리

안녕하세요. 코딩을 독학하고있는 정호빈입니다. 이번에는 공통된 코드들을 관리하는 방법을 알아본건데요. 우리는 html파일을 만들다보면 공통된형식이라던지 css를 불러오는 과정등 공통된코

seongjangjhb.tistory.com

 

 

그렇다면 이제부터 장고로 데이터베이스를 이용하는 법을 알아보겠습니다.

우선 장고의 앱을 새로 만들어 봅시다.

 

 

 

 

 

 

앱을 만들어주었으니 앱을 settings.py에 등록해주고

 

 

 

 

 

 

이제 데이터를 저장할 모델을 정의해줍니다.

 

 

 

(def __str__(self):를 작성해주셔야 어드민 사이트에서 모델이 정의된 걸 볼 수 있습니다. 추가로 테이블에는 Primary Key라는 게 존재합니다. 여기서 따로 지정해주지 않아서 id라는 pk값이 자동으로 설정됩니다. 이 내용은 다음 번에 다루도록하겠습니다. )

 

 

 

 

모델을 정의했으니 makemigrations와 migrate를 해줍니다.

 

 

 

 

 

 

내가 정의한 새로운 모델이 생겼습니다. 폼을 저장하는 방법은 3가지가 있습니다. 그중에서 저는 가장 일반적인 방법으로 데이터를 저장해보겠습니다. 데이터를 입력하기 위한 페이지를 띄우는 views와 데이터를 저장하는 views를 정의합니다.(일반적인 폼, 장고 폼, 장고 모델폼)

 

 

 

 

 

 

알맞은 urls.py를 생성해주고

 

 

 

 

 

 

새로운 html 파일에 폼 테이블을 만드는데 반드시 {% csrf_token %}을 작성해주셔야 합니다.

 

 

 

 

 

 

아이디는 abcdef를 입력하고 패스워드는 123456을 입력했습니다.

 

 

 

 

 

 

데이터가 잘 저장된 걸 볼 수 있습니다.

 

 

 

 

 

 

이렇게 장고로 데이터를 다루는 법을 알아보았습니다. 이번엔 데이터를 저장하는 법을 공부해보았으니 다음 내용은 해당 데이터를 꺼내와서 어떻게 사용하는지 알아보겠습니다. 감사합니다.