안녕하세요, 오늘은 데이터베이스 CRUD연산을 수행해볼 건데,
통신 코드를 작성하지 않고 장고에서 기본적으로 제공하는 admin페이지를 이용해보려 합니다.
기본적으로 장고는 Java Spring이나 여타 백엔드 프레임워크와 달리,
admin페이지를 자체적으로 제공해줍니다.
개발자가 따로 코드로 구현하지 않아도, 어드민 페이지에 접속해 유저를 관리하고,
권한을 부여하고, 테이블에 데이터를 추가 및 삭제 및 수정할 수도 있습니다.
admin페이지에 먼저 접속해봅시다.
당연한 이야기지만, 터미널에서 서버를 켜줍시다.
python manage.py runserver
이후 서버에 접속해줍니다.
다음과 같이, 활성화 된 장고 서버의 포트 번호 뒤에, /admin을 붙여주면
어드민 페이지로 이동합니다.
처음 어드민 페이지에 접속하면, 아래와 같이 어드민 유저임을 인증하는 창이 나옵니다.
아직 어드민 유저를 생성하지 않았기에, 먼저 저희 프로젝트의 어드민 유저를 생성해야 합니다.
어드민 유저의 생성은 터미널로 돌아와 해줄 수 있습니다.
터미널을 열고, 아래와 같이 입력해주세요.
python manage.py createsuperuser
그럼, 다음과 같이 superuser(admin)을 생성할 수 있습니다.
사진엔 나오지 않았지만, username, email, password순으로 입력을 받아 관리자 계정을 생성하게 됩니다. (아직은 제 이메일을 노출하기 싫어 캡쳐할 때 포함시키지 않았습니다 ㅎ)
이제 생성한 username과 password로 admin페이지에 로그인 할 수 있습니다.
어드민 계정으로 로그인을 하면, 다음과 같은 페이지가 나타납니다.
유저를 GUI로 관리할 수 있네요. 아주 좋아 보입니다.
아래엔 모든 유저들의 정보가 나타납니다.
우측 상단의 add user를 클릭하여 회원을 추가할 수도 있습니다.
또, 각 유저를 클릭하면 유저의 비밀번호를 포함한 모든 정보부터 유저의 권한 설정까지
전부 GUI로 조작이 가능합니다.
그런데, 처음 로그인 시 나타나는 어드민 패널의 모습을 잘 살펴보면,
Groups, Users항목을 담고 있는 "Auth" 와 관련된 항목만 존재하고 있네요.
제 프로젝트에는, 프리미엄 서비스를 구독한 회원들의 정보를 보관하는 테이블이 있습니다.
이 테이블을 Django의 어드민 패널에 등록해, GUI로 데이터 CRUD를 쉽게 할 수 있습니다.
테이블의 등록을 위해, 저희는 다시 파이썬 코드로 돌아가야 합니다.
등록을 원하는 테이블이 속한 Django app폴더 내의 admin.py 파일에 테이블을 등록하기만 하면 됩니다.
아래는 admin.py의 소스코드입니다.
from django.contrib import admin
from .models import PremiumMembers
# Register your models here.
# admin 페이지에 모델 등록하면.. 해당 테이블에 데이터 GUI로 추가 가능
admin.site.register(PremiumMembers)
여기서 PremiumMembers는 제가 models.py에 작성해둔 클래스입니다.
admin.site.register(해당 테이블로 사상되는 model클래스)
이 구문 한 줄이면, admin패널에서 PremiumMembers테이블의 CRUD를 GUI로 할 수 있습니다.
다시 admin 패널로 돌아가, 우리가 등록한 app과 테이블이 잘 보이는지 확인해볼게요.
저는 프리미엄 멤버 테이블을 포함하는 app의 이름을 calc라고 임의로 정해두었는데요,
(저도 왜 저렇게 지었는지 모르겠다만 지금은 그저 연습을 위한 것이니 네이밍 컨벤션은 잠시 잊어주세요 😂)
이제, calc app내의 premium members 테이블을 클릭해 데이터를 직접 추가해보고, pgAdmin에 접속해 데이터가 잘 추가되었는지 확인해볼게요.
데이터를 추가해봅시다.
우측 상단의 add를 클릭하여 데이터를 추가할 수 있습니다.
저는 현재 3명의 유저 데이터를 추가하였습니다.
데이터 추가하기 버튼을 클릭해보면,
정말 신기하게도 admin페이지는 저희가 models.py에 정의해둔 클래스의 컬럼 프로퍼티들을 모두 입력받고 있습니다.
from django.db import models
class PremiumMembers(models.Model):
user_name = models.CharField(max_length=30)
user_age = models.IntegerField(null=True)
description = models.TextField(null=True)
profile_img = models.ImageField(upload_to='profile_imgs')
제가 정의해둔 model클래스를 다시 확인해보니, 정확히 일치합니다.
이제 데이터도 잘 추가했으니, pgAdmin으로 이동해봅시다.
저는 프로젝트의 데이터베이스로 postgreSQL을 선택했기 때문에,
테이블을 pgAdmin에서 확인해보려 합니다.
원하는 테이블을 우클릭하여 refresh해주는 것, 잊지 마시구요!
새로 고침 해보고 다시 우클릭 하여 view를 눌러보면...!
프리미엄 회원 DB에 세 명의 유저 데이터가 잘 저장되었네요.
저희는 이렇게 장고에서 기본적으로 제공하는 어드민 패널을 이용해
단 한 줄의 통신 코드 작성 없이 데이터베이스에 데이터를 추가해보았습니다.
다음 시간에는, 통신 코드를 작성하여 CRUD연산을 수행해봅시다.