클라우드 교육/Django

Django Database 연동

mellamo 2023. 2. 7. 11:16

 

 

현재 config 라는 project를 실행해서 하고있다. 

app은 exdb를 사용했다. 

 

 

 

 

사이트 업로드하면 아래처럼  빨간 오류가 뜨는데 사이트는 잘 될것이다. 데이터베이스를 업로드하면 이런 창이 뜨지않는다. 

 

python manage.py migrate 를 실행해야한다고 나온다. 

 

 

이 글에서 해볼 목표이다. Database를 생성해 app파일에 연동하고 admin 계정을 만들어 데이터를 축적할 것이다. 

 

 

 

기본적으로 설치된 앱들은 config/settings.py에 명시되어있다. 

 

 messages, staticfiles는 데이터베이스와 관련없는 앱이라 경고문에 포함되지않는다. 

 

 

 

아래는 

config/settings.py인데 데이터베이스에 대한 정보가 표시되어있다. 

 

 

 

 

sqlite3라는 django 전용 엔진을 쓴다고 명시되어있다. 

 

sqlite : 개발용이나 소규모 프로젝트에서 사용되는 가볍게 사용하는 데이터베이스

 

 

 

먼저 db base를 아래처럼 만든다. 

 

 

해석하자면 아래처럼 보여진다. 

괄호안의 내용은 db의 조건을 걸어둔 것이다. 

 

 

 

아래처럼 기본db가 보여질 것을 정한다. 

 

 

 

 

 

 

이제 db를 설치할건데 

 

명령프롬프트에 아래처럼 입력하자. 

 

py manage.py makemigrations

 

지금은 아래처럼 입력해도 아무 변화가 없다. 

 

 

먼저 db를 app에 등록해야한다. 

 

 

exdb/apps.py에 가면 아래처럼 보여지는데 이를 config/settings.py에 등록하자

 

 

 

그리고 다시 

 

py manage.py makemigrations

 

 

그러면 

아래처럼 생성되었다. 

 

 

 

확인해보면 아래처럼 db base가 생성되었다. 

 

 

 

이제 db table을 생성해보자. 아래처럼 입력하면 요구하는 앱들이 사용하는 테이블들이 생성된다. 

py manage.py migrate

아래는 입력한 후 명령이 생성되는중

 

 

 

 

 

 

 

이제 슈퍼 유저를 만든다

 

새 명령어 창을 열고, 

 

py manage.py createsuperuser

 

 

 

 

만든 계정을 입력하고

 

 

 

 

 

지금은 아무것도 안뜬다. 

 

 

 

 

아래에서 등록하자. 

 

 

아래처럼 Studens가 등록되었다. 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

admin으로 작성했으면, 

 

 

 

 

 

 

 

views.py에서 아래처럼 db값을 추가해준다. 

 

 

이제 index.html로 가서 

for문으로 table를 보여줄 것이다. 

 

 

 

마무리하고 띄워주면 아래처럼 테이블이 정리된 형태로 뜨게 된다. 

 

 

 

 

 

 

 

 

True와 False 값을 주게 되면 표시되고 안되게 된다. 

 

 

 

 

 

 

 

 

 

 

변수를 추가로 주고싶을때 views.py에 추가해 아래처럼 입력해도 된다.