🐍
Python 패스트캠퍼스 챌린지 70일차
July 21, 2022
오늘도 셀프 “한 번에 끝내는 파이썬 웹 개발 초격차 패키지 Online” 강의 1일 1강 포스팅 챌린지 :)
04. Django Database Modeling (2)
1. Database Modeling
- 지난 시간에 이어 PayPlan에 대해 모델링을 진행할 것
from django.db import models
# Create your models here.
class PayPlan(models.Model):
name = models.CharField(max_length=20)
price = models.IntegerField()
updated_at = models.DateTimeField(auto_now=True)
create_at = models.DateTimeField(auto_now_add=True)
- class로 models라는 모듈의 Model을 상속받아온다.
- 컬럼 이름 및 데이터 타입 정의(예: name → 컬럼 이름, CharField → 데이터 타입)
- price의 경우 미국 등의 경우 integer를 사용할 수 없으나 한국 원화의 경우 integer를 사용해도 무방.
실제로 코드에 적용해보자.
-
SHRINKERS > shortner > models.py 파일을 아래와 같이 수정해준다.
from django.db import models # Create your models here. class PayPlan(models.Model): name = models.CharField(max_length=20) price = models.IntegerField() updated_at = models.DateTimeField(auto_now=True) create_at = models.DateTimeField(auto_now_add=True)
- class를 추가해 준 뒤에는 잠시 주석처리 해둔다.
-
Terminal > New Terminal로 새 터미널 창을 연 다음 아래 명령어를 실행해준다.
(venv) ➜ shrinkers git:(master) ✗ python manage.py migrate Operations to perform: Apply all migrations: admin, auth, contenttypes, sessions Running migrations: Applying contenttypes.0001_initial... OK Applying auth.0001_initial... OK Applying admin.0001_initial... OK Applying admin.0002_logentry_remove_auto_add... OK Applying admin.0003_logentry_add_action_flag_choices... OK Applying contenttypes.0002_remove_content_type_name... OK Applying auth.0002_alter_permission_name_max_length... OK Applying auth.0003_alter_user_email_max_length... OK Applying auth.0004_alter_user_username_opts... OK Applying auth.0005_alter_user_last_login_null... OK Applying auth.0006_require_contenttypes_0002... OK Applying auth.0007_alter_validators_add_error_messages... OK Applying auth.0008_alter_user_username_max_length... OK Applying auth.0009_alter_user_last_name_max_length... OK Applying auth.0010_alter_group_name_max_length... OK Applying auth.0011_update_proxy_permissions... OK Applying auth.0012_alter_user_first_name_max_length... OK Applying sessions.0001_initial... OK
- 위 명령어를 통해 Django 프레임워크가 필요로 하는 데이터 베이스를 생성한다.
-
앞에서 작성한 class 코드의 주석처리를 해제하고, 아래의 명령어를 실행해준다.
(venv) ➜ shrinkers git:(master) ✗ python manage.py makemigrations shortener Migrations for 'shortener': shortener/migrations/0001_initial.py - Create model PayPlan
- 여기서 에러가 발생했는데 해결 방법은 여기 참조
- migrate 을 진행해준다.
(venv) ➜ shrinkers git:(master) ✗ python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions, shortener
Running migrations:
Applying shortener.0001_initial... OK
2. CreateSuperUser
-
앱의 첫 슈퍼 유저(사용자)를 만드는 방법
python manage.py createsuperuser
-
실습해보자.
(venv) ➜ shrinkers git:(master) ✗ python manage.py createsuperuser Username (leave blank to use 'jinipark'): admin Email address: admin@shrinkers.com Password: Password (again): Superuser created successfully.
- 비밀번호 규칙 → 최소 8자(8자 이하인 경우에도 생성은 가능)
3. DBeaver 설치
- DBeaver 공식 웹사이트(https://dbeaver.io/download/)에 접속해 설치파일을 다운로드, 설치를 진행한다.
- DBeaver를 실행한뒤, 좌측 상단의
+
버튼을 눌러 프로젝트 생성을 시작한다. - SQLite를 선택
- Path 옆의 Open 버튼을 선택 → 프로젝트 폴더의 SQLite3 파일을 선택
- 완료 버튼 클릭(DB 드라이버가 없는 경우 다운로드를 받도록 안내창이 생성된다)
- Tables 중
auth
와Django
로 시작하는 테이블은 Django 프레임워크가 사용하는 부분,shortener_payplan
위의 실습에서 생성한 부분이다. auth_user
테이블에서Data
탭을 클릭해 들어가보면, 위의 실습에서 생성한 superuser를 확인할 수 있다.
- 위의 사항들은 Django admin에서도 확인할 수 있지만 DBMS에서 확인하는 것이 훨씬 편리하다.
- Django admin으로 접속해 내용을 확인해보자.
-
터미널에서 아래 명령어를 입력해 서버를 실행해주자.
(venv) ➜ shrinkers git:(master) ✗ python manage.py runserver
-
http://127.0.0.1:8000/ 주소로 접속하면 Django 메인 화면이 뜨는데, 여기서 http://127.0.0.1:8000/admin/ 로 이동해 위 실습에서 생성한 admin 유저로 로그인해준다.
-
user를 들어가보면 admin이 등록되어있음을 확인할 수 있다.
-
- 패스트캠퍼스 강의 등록하기: https://bit.ly/3L3avNW
#패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #캐시백챌린지 #캐시백 #환급챌린지 #한번에끝내는파이썬웹개발초격차패키지Online