본문 바로가기
AI 웹개발반/Python, Django

[Django] 03 앱 추가 + DB연결, admin

by 째깍단 2023. 4. 4.

- Django를 실행시키고 관리하기 위한 명령어를 알아본다.

- Django의 ORM을 알아보고 Database와 연동하여 사용 해보기.

 

 

1) 앱 추가 / DB연결하기

 

필요한 앱의 이름을 넣어 폴더를 생성한다. (manage.py가 있는 폴더에 그대로 만들면된다.)

 

폴더를 추가해준 후에는 꼭 startapp으로 장고에게 앱 추가하라고 알려줘야한다.

그래야 장고에서 내부 기능을 저절로 채워줌

django startapp #user  는 폴더명, 변경가능

 

+ settings.py의  INSTALLED_APPS 안에 '해당 폴더명' 추가 하기

 

 

 - installed_apps 들여다보기:

더보기
INSTALLED_APPS = [  #장고에서 기본적으로 제공되는 것들
'django.contrib.admin', #관리자
'django.contrib.auth', #인증, 권한 부여
'django.contrib.contenttypes', #컨텐츠타입 시스템, 어떤 객체인지 식별
'django.contrib.sessions', #세션 관리 기능
'django.contrib.messages', #사용자에 대한 피드백 메세지 제공
'django.contrib.staticfiles', #정적 파일 제공. CSS, JavaScript 및 이미지 파일과 같은 것들을 정적파일이라고 함

'tweet',
'user',
]

 

 

마찬가지로 settings.py의  DATABASES를 보면

'NAME': BASE_DIR / 'db.sqlite3'

이것이 있는데 이게 데이터베이스.

settings.py를 터미널에서 실행하면 해당 폴더 내에 생성된다.

 

 


 

*** mac vscode에서 sqlite실행하기..

 

cmd+shift+x로 마켓플레이스를 열고 sqlite를 찾는다. (파란동그라미에 하얀깃털)

SQLite viewer도 설치해야 단순한 네모칸 콘솔이 아닌 트리테이블로 볼 수 있다

 

설치 후 cmd + shipt + p (혹은 보기>명령팔레트) 에서

'SQLite: Open Database' 명령어를 입력,

자동으로 db.sqlite3 파일을 찾아온다. 실행!

 

or vscode 탐색기에서 settings.py실행 후 만들어진 db.sqlite3파일을 우클릭, open database를 해준다.

 

정상적으로 실행이 되었다면 오른쪽하단 >개요 밑에 >SQLITE Explorer 가 생긴 것을 확인할 수 있다!

 

 


 

 

 

2) ORM

object relational mapping

데이터들을 하나의 객체로 보고, 파이썬 클래스로 다룰 수 있도록 해준다.

어떤 모델을 생성할지, 요소들을 담을 것인지 고민해야한다.

 

class 붕어빵틀():

빵반죽 = ''

속재료 = ''

굽는시간 = ''

가격 = 0

 

이런식으로 표현된 데이터를 orm으로 간편하게 데이터베이스로 표현해준다.

 

 

 

 

3)admin tools 관리자 툴 사용하기

(+ tweet 글쓰기 모델 추가하기 #관리자툴했듯이, tweet파일에서 진행. 과정은 동일함!)

 

* 튜터님이 강의 중에 자주 서버를 끄시는데, 오류를 줄이기 위해 서버를 끄는 듯함;

   기능추가때는 ctrl + c로 미리 끄고 시작하자. *

 

 

(1) 사용하고자하는 class를 만들어 models.py에 넣어준다

 

(2) 명령어로 장고가 변경된 내용을 확인해 db를 만들어주고, db에 입력해달라는 요청을 통해 적용한다

python3 manage.py makemigrations
python3 manage.py migrate

 

 

 

 

(3) vscode기준 왼쪽 >개요에 있는 db.squlte3을 찾아..  오른쪽클릭하여 Show table을 해보면

     table my_user 와 내용이 추가된 것을 볼 수 있다.

#models.py의 UserModel > Meta 함수에 이름을 지정 했음
db_table = "my_user"

 

 

(4) 위 과정이 완료되면 명령어로 admin계정을 만든다

python3 manage.py createsuperuser
#admin.py에 사용자 등록 기능을 추가하면 localhost에서 등록한 user를 볼 수 있다

 

 

 

(5) 이 코드를 admin.py에 넣어 실행한다

from django.contrib import admin #admin을 사용할 것이라고 import
from .models import UserModel #현재 파일의 위치와 같은 곳에있는 models에 만든 클래스 불러오기

admin.site.register(UserModel) #usermodel을 관리자페이지에 넣어주겠다..

 

+ 장고 manage.py runserver

   노란 경고페이지에 겁먹지말고 /admin에서 로그인, 추가한 정보를 확인할 수 있다.