
Model은 Django의 MTV패턴 중 'M'을 담당한다.
프로젝트에서 회원 관리 등을 담당하는 데이터베이스를 SQL문 없이 App에 접근할 수 있게 해줌
VScode를 열고 프로젝트 → App폴더를 열면 __init__.py, apps.py, urls.py 등 등의 Python 파일들이 있는 것을 확인 할 수 있다! 그 중 models.py 파일 열기!
models.py 파일 작성
from django.db import models
# Create your models here.
# ORM의 역할 : SQL을 직접 작성하지 않아도 DB로 접근해 CRUD(조회/추가/수정/삭제)가 가능하게 해준다.
# 이 Model은 Create의 Table문이라고 생각하면 된다!
class User(models.Model):
# 테이블명은 단수로 적어주어야 한다. 괄호()안은 모델을 만들기 위한 규칙. 얘는 지금 모델입니다~
userid = models.CharField(max_length=64, verbose_name='아이디')
# userid는 컬럼명
# CharField는 문자열 필드. Varchar랑 용도 유사
# max_length는 최대 길이, 길이 제한.
username = models.CharField(max_length=64, verbose_name='이름')
password = models.CharField(max_length=64, verbose_name='비밀번호')
registered = models.DateTimeField(auto_now_add=True, verbose_name='등록')
# DataTimeField auto_now_add=True > DB테이블에 자동 기입될 현재 시각
# 0000-00-00 00:00:00 datetime
GENDERS = ( ('M', '남성(Man'), ('W', '여성(Woman)') )
gender = models.CharField(max_length=1, verbose_name='성별', choices=GENDERS)
# enum( 'M' , 'W' ), 'M'과 'W' 뒤에 오는 인자는 verbose의 별칭으로 적용된다.
# enum의 개념은 리스트형. 해당 컬럼의 데이터 타입 enum(1,2,3,4,5,6,7)
# =True (기본값은 False)
True/False 값을 저장하는 필드.Putty 터미널을 실행시켜서 다음과 같은 명령어를 실행시킨다.
python3 manage.py makemigrations
그 다음 Migration을 적용시키기 위해서 다음과 같은 명령어를 실행시킨다.
python3 manage.py migrate
여기까지 하면 변경 사항과 DB의 스키마 동기화 작업이 다 완료된 것이다😀
Migration 상태를 확인해보고 싶다면 다음과 같이 명령어를 입력하면 된다.
python3 manage.py showmigrations
관리자 페이지 내용을 영어가 아닌 한글로 보고 싶다면 'settings.py' 안에서 다음과 같이 수정한다.

models.py이 있는 App폴더에 같은 위치에 있는 admin.py 파일을 작성한다.from django.contrib import admin
from .models import User
# Register your models here.
admin.site.register(User)
# admin이라는 사이트에 user를 등록할 것이다.
[본인 IP주소]:[본인 Port번호]/admin 접속
로그인을 할 때 슈퍼관리자의 계정이 필요함
우분투 터미널에서 슈퍼관리자의 계정과 비밀번호를 설정할 수 있음
python3 manage.py createsuperuser
사용자이름(default : root), 이메일주소, 비밀번호를 새로 만들어준다.
위의 과정을 다 마쳤으면 관리자 로그인 페이지에서 로그인 해보기!

로그인 성공!!ヾ(≧▽≦*)o

models.py 에서 작성했던 필드가 반영이 된 것을 확인 할 수 있다!
Model 파일에서 필드를 추가할 때 다음과 같은 사항들이 반영되지 않으면 에러가 발생할 수 있다!
Ex) username = models.CharField(max_length=64, verbose_name='이름', '여기에 들어갈 내용')
null=True (NULL을 허용해주기)default= 알아서 적기 (기본값을 지정해준다.)서버를 실행시키다 보면 해당 Port는 이미 사용중이라는 메세지가 뜰 때가 있다. 이 때 진짜 뇌정지옴
그럴 땐 실행 중인 Port를 죽여야 하는 데 다음과 같이 조치하면 된다!
Putty 터미널창에 다음과 같은 명령어 입력
netstat -tnlp
그 후 출력되는 화면 중 본인의 PID번호 확인
아래 명령어를 입력해서 Port를 죽인다.
kill -9 'PID'