App
- 구현하고자 하는 기능들 정리해보기예를 들어, SNS 를 만드는 것이 목표라면 크게 세가지 기능 구현을 생각해볼 수 있다.
- 사용자 관리 (회원가입 / 로그인 / 로그아웃)
- 글쓰기
- 친구 만들기 등등…
- 프로젝트 구조를 만들 때에는 내가 만들고자 하는 것이 무엇인지, 구현하고자 하는 기능이 무엇인지를 생각해본다.
- 기능 관리 단위로 App 만들기따라서, user앱과 tweet앱을 생성하여 구조를 잡을 수 있다.
- 그 다음, 이 기능들을 어떻게 나누어 관리하는 것이 효율적일지를 생각해본다. 이 경우 크게 ‘사용자’와 ‘글’로 나눌 수 있다.
Model
- ORM (Object Relational Mapping) 이란?Django 프로젝트의 구조를 한번 더 살펴보자.장고는 ORM이라는 (database) model을 통해 DB에 접근한다. 이러한 model은 app별로 관리된다.
- 데이터베이스를 하나의 객체(Object)로 보고, SQL 언어가 아닌 클래스로 표현하는 데이터베이스 형태이다. 장고는 ORM 데이터베이스 모델을 사용한다.
- Model(ORM) 구축하기
- Model에 필요한 정보들이 무엇인지 생각해보기
- 사용자를 구분하는 이름
- 비밀번호
- 상태메시지
- 생년월일 등등
- 이 때, 넣고 싶은 정보는 나중에 DB 테이블의 필드가 된다.
- 예를 들어 user model의 경우,
- Class 만들기
- class Meta : DB 테이블의 이름을 지정
- Field Type 필드 종류
- [AutoField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#autofield>)
- [BigAutoField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#bigautofield>)
- [BigIntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#bigintegerfield>)
- [BinaryField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#binaryfield>)
- [BooleanField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#booleanfield>)
- [CharField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#charfield>)
- [DateField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#datefield>)
- [DateTimeField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#datetimefield>)
- [DecimalField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#decimalfield>)
- [DurationField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#durationfield>)
- [EmailField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#emailfield>)
- [FileField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#filefield>)
- [FileField and FieldFile](https://docs.djangoproject.com/en/4.2/ref/models/fields/#filefield-and-fieldfile)
- [FilePathField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#filepathfield>)
- [FloatField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#floatfield>)
- [GenericIPAddressField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#genericipaddressfield>)
- [ImageField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#imagefield>)
- [IntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#integerfield>)
- [JSONField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#jsonfield>)
- [PositiveBigIntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#positivebigintegerfield>)
- [PositiveIntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#positiveintegerfield>)
- [PositiveSmallIntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#positivesmallintegerfield>)
- [SlugField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#slugfield>)
- [SmallAutoField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#smallautofield>)
- [SmallIntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#smallintegerfield>)
- [TextField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#textfield>)
- [TimeField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#timefield>)
- [URLField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#urlfield>)
- [UUIDField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#uuidfield>)
- Field Option 필드 속성
- [null](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#null>)
- [blank](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#blank>)
- [choices](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#choices>)
- [db_column](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#db-column>)
- [db_comment](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#db-comment>)
- [db_index](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#db-index>)
- [db_tablespace](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#db-tablespace>)
- [default](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#default>)
- [editable](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#editable>)
- [error_messages](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#error-messages>)
- [help_text](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#help-text>)
- [primary_key](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#primary-key>)
- [unique](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#unique>)
- [unique_for_date](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#unique-for-date>)
- [unique_for_month](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#unique-for-month>)
- [unique_for_year](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#unique-for-year>)
- [verbose_name](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#verbose-name>)
- [validators](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#validators>)
- ForeignKey : 다른 모델을 가져올때 사용. 첫번째 인자로 가져온 모델 클래스명을 기입.
- 이때 import도 잊지말고 해줘야!
- User model
- Model ⇒ DB에 적용
- Model에 필요한 정보들이 무엇인지 생각해보기
DB
- SQLite 확장프로그램 설치편집기에 DB 창이 있어 바로 열람이 가능한 파이참과는 달리, vscode 에서 DB를 열람하기 위해서는 SQLite 라는 확장프로그램을 설치해주어야 한다.공식문서를 보면 sqlite 말고도 여러 프로그램을 지원함.
- 설치 후, db.sqlite3 에서 우클릭 > Open Database 클릭 > 아래 SQLITE EXPLORER 탭 클릭을 하면 DB 창이 띄워진다.
데이터베이스 연결?(파이참)
Admin
장고 서버 실행(python manage.py runserver) > http 주소로 접속 > /admin으로 접속하면 관리자 페이지를 확인할 수 있다.
일단 다시 서버를 중지하고(ctrl + C) 관리자 페이지 세팅을 해보자.
- 관리자 계정 생성
- python manage.py createsuperuser
- Username, Email, Password 생성
- 다시 runserver 해서 접속한 후 로그인하면 위와 같은 화면이 뜸.
- Groups와 Users탭이 있는데, 이중 Users탭은 생성한 superuser를 관리하는 페이지이다.
- 관리자 페이지에 모델 등록
- user > admin.py
- from .models import UserModel : models.py의 클래스 import
- admin.site.register(UserModel) : 관리자 페이지에 모델 등록
- 저장 후(까먹지 말것!!!) 다시 runserver 해주면 바뀐 페이지를 확인할 수 있다.
- 이 페이지에서 데이터를 생성/수정할 수도 있음.
App
- 구현하고자 하는 기능들 정리해보기예를 들어, SNS 를 만드는 것이 목표라면 크게 세가지 기능 구현을 생각해볼 수 있다.
- 사용자 관리 (회원가입 / 로그인 / 로그아웃)
- 글쓰기
- 친구 만들기 등등…
- 프로젝트 구조를 만들 때에는 내가 만들고자 하는 것이 무엇인지, 구현하고자 하는 기능이 무엇인지를 생각해본다.
- 기능 관리 단위로 App 만들기따라서, user앱과 tweet앱을 생성하여 구조를 잡을 수 있다.
- 그 다음, 이 기능들을 어떻게 나누어 관리하는 것이 효율적일지를 생각해본다. 이 경우 크게 ‘사용자’와 ‘글’로 나눌 수 있다.
Model
- ORM (Object Relational Mapping) 이란?Django 프로젝트의 구조를 한번 더 살펴보자.장고는 ORM이라는 (database) model을 통해 DB에 접근한다. 이러한 model은 app별로 관리된다.
- 데이터베이스를 하나의 객체(Object)로 보고, SQL 언어가 아닌 클래스로 표현하는 데이터베이스 형태이다. 장고는 ORM 데이터베이스 모델을 사용한다.
- Model(ORM) 구축하기
- Model에 필요한 정보들이 무엇인지 생각해보기
- 사용자를 구분하는 이름
- 비밀번호
- 상태메시지
- 생년월일 등등
- 이 때, 넣고 싶은 정보는 나중에 DB 테이블의 필드가 된다.
- 예를 들어 user model의 경우,
- Class 만들기
- class Meta : DB 테이블의 이름을 지정
- Field Type 필드 종류
- [AutoField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#autofield>)
- [BigAutoField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#bigautofield>)
- [BigIntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#bigintegerfield>)
- [BinaryField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#binaryfield>)
- [BooleanField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#booleanfield>)
- [CharField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#charfield>)
- [DateField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#datefield>)
- [DateTimeField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#datetimefield>)
- [DecimalField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#decimalfield>)
- [DurationField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#durationfield>)
- [EmailField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#emailfield>)
- [FileField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#filefield>)
- [FileField and FieldFile](https://docs.djangoproject.com/en/4.2/ref/models/fields/#filefield-and-fieldfile)
- [FilePathField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#filepathfield>)
- [FloatField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#floatfield>)
- [GenericIPAddressField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#genericipaddressfield>)
- [ImageField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#imagefield>)
- [IntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#integerfield>)
- [JSONField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#jsonfield>)
- [PositiveBigIntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#positivebigintegerfield>)
- [PositiveIntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#positiveintegerfield>)
- [PositiveSmallIntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#positivesmallintegerfield>)
- [SlugField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#slugfield>)
- [SmallAutoField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#smallautofield>)
- [SmallIntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#smallintegerfield>)
- [TextField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#textfield>)
- [TimeField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#timefield>)
- [URLField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#urlfield>)
- [UUIDField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#uuidfield>)
- Field Option 필드 속성
- [null](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#null>)
- [blank](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#blank>)
- [choices](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#choices>)
- [db_column](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#db-column>)
- [db_comment](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#db-comment>)
- [db_index](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#db-index>)
- [db_tablespace](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#db-tablespace>)
- [default](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#default>)
- [editable](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#editable>)
- [error_messages](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#error-messages>)
- [help_text](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#help-text>)
- [primary_key](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#primary-key>)
- [unique](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#unique>)
- [unique_for_date](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#unique-for-date>)
- [unique_for_month](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#unique-for-month>)
- [unique_for_year](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#unique-for-year>)
- [verbose_name](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#verbose-name>)
- [validators](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#validators>)
- ForeignKey : 다른 모델을 가져올때 사용. 첫번째 인자로 가져온 모델 클래스명을 기입.
- 이때 import도 잊지말고 해줘야!
- User model
- Model ⇒ DB에 적용
- Model에 필요한 정보들이 무엇인지 생각해보기
DB
- SQLite 확장프로그램 설치편집기에 DB 창이 있어 바로 열람이 가능한 파이참과는 달리, vscode 에서 DB를 열람하기 위해서는 SQLite 라는 확장프로그램을 설치해주어야 한다.공식문서를 보면 sqlite 말고도 여러 프로그램을 지원함.
- 설치 후, db.sqlite3 에서 우클릭 > Open Database 클릭 > 아래 SQLITE EXPLORER 탭 클릭을 하면 DB 창이 띄워진다.
데이터베이스 연결?(파이참)
Admin
장고 서버 실행(python manage.py runserver) > http 주소로 접속 > /admin으로 접속하면 관리자 페이지를 확인할 수 있다.
일단 다시 서버를 중지하고(ctrl + C) 관리자 페이지 세팅을 해보자.
- 관리자 계정 생성
- python manage.py createsuperuser
- Username, Email, Password 생성
- 다시 runserver 해서 접속한 후 로그인하면 위와 같은 화면이 뜸.
- Groups와 Users탭이 있는데, 이중 Users탭은 생성한 superuser를 관리하는 페이지이다.
- 관리자 페이지에 모델 등록
- user > admin.py
- from .models import UserModel : models.py의 클래스 import
- admin.site.register(UserModel) : 관리자 페이지에 모델 등록
- 저장 후(까먹지 말것!!!) 다시 runserver 해주면 바뀐 페이지를 확인할 수 있다.
- 이 페이지에서 데이터를 생성/수정할 수도 있음.
App
- 구현하고자 하는 기능들 정리해보기예를 들어, SNS 를 만드는 것이 목표라면 크게 세가지 기능 구현을 생각해볼 수 있다.
- 사용자 관리 (회원가입 / 로그인 / 로그아웃)
- 글쓰기
- 친구 만들기 등등…
- 프로젝트 구조를 만들 때에는 내가 만들고자 하는 것이 무엇인지, 구현하고자 하는 기능이 무엇인지를 생각해본다.
- 기능 관리 단위로 App 만들기따라서, user앱과 tweet앱을 생성하여 구조를 잡을 수 있다.
- 그 다음, 이 기능들을 어떻게 나누어 관리하는 것이 효율적일지를 생각해본다. 이 경우 크게 ‘사용자’와 ‘글’로 나눌 수 있다.
Model
- ORM (Object Relational Mapping) 이란?Django 프로젝트의 구조를 한번 더 살펴보자.장고는 ORM이라는 (database) model을 통해 DB에 접근한다. 이러한 model은 app별로 관리된다.
- 데이터베이스를 하나의 객체(Object)로 보고, SQL 언어가 아닌 클래스로 표현하는 데이터베이스 형태이다. 장고는 ORM 데이터베이스 모델을 사용한다.
- Model(ORM) 구축하기
- Model에 필요한 정보들이 무엇인지 생각해보기
- 사용자를 구분하는 이름
- 비밀번호
- 상태메시지
- 생년월일 등등
- 이 때, 넣고 싶은 정보는 나중에 DB 테이블의 필드가 된다.
- 예를 들어 user model의 경우,
- Class 만들기
- class Meta : DB 테이블의 이름을 지정
- Field Type 필드 종류
- [AutoField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#autofield>)
- [BigAutoField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#bigautofield>)
- [BigIntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#bigintegerfield>)
- [BinaryField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#binaryfield>)
- [BooleanField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#booleanfield>)
- [CharField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#charfield>)
- [DateField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#datefield>)
- [DateTimeField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#datetimefield>)
- [DecimalField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#decimalfield>)
- [DurationField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#durationfield>)
- [EmailField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#emailfield>)
- [FileField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#filefield>)
- [FileField and FieldFile](https://docs.djangoproject.com/en/4.2/ref/models/fields/#filefield-and-fieldfile)
- [FilePathField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#filepathfield>)
- [FloatField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#floatfield>)
- [GenericIPAddressField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#genericipaddressfield>)
- [ImageField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#imagefield>)
- [IntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#integerfield>)
- [JSONField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#jsonfield>)
- [PositiveBigIntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#positivebigintegerfield>)
- [PositiveIntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#positiveintegerfield>)
- [PositiveSmallIntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#positivesmallintegerfield>)
- [SlugField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#slugfield>)
- [SmallAutoField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#smallautofield>)
- [SmallIntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#smallintegerfield>)
- [TextField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#textfield>)
- [TimeField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#timefield>)
- [URLField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#urlfield>)
- [UUIDField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#uuidfield>)
- Field Option 필드 속성
- [null](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#null>)
- [blank](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#blank>)
- [choices](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#choices>)
- [db_column](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#db-column>)
- [db_comment](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#db-comment>)
- [db_index](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#db-index>)
- [db_tablespace](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#db-tablespace>)
- [default](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#default>)
- [editable](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#editable>)
- [error_messages](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#error-messages>)
- [help_text](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#help-text>)
- [primary_key](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#primary-key>)
- [unique](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#unique>)
- [unique_for_date](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#unique-for-date>)
- [unique_for_month](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#unique-for-month>)
- [unique_for_year](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#unique-for-year>)
- [verbose_name](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#verbose-name>)
- [validators](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#validators>)
- ForeignKey : 다른 모델을 가져올때 사용. 첫번째 인자로 가져온 모델 클래스명을 기입.
- 이때 import도 잊지말고 해줘야!
- User model
- Model ⇒ DB에 적용
- Model에 필요한 정보들이 무엇인지 생각해보기
DB
- SQLite 확장프로그램 설치편집기에 DB 창이 있어 바로 열람이 가능한 파이참과는 달리, vscode 에서 DB를 열람하기 위해서는 SQLite 라는 확장프로그램을 설치해주어야 한다.공식문서를 보면 sqlite 말고도 여러 프로그램을 지원함.
- 설치 후, db.sqlite3 에서 우클릭 > Open Database 클릭 > 아래 SQLITE EXPLORER 탭 클릭을 하면 DB 창이 띄워진다.
데이터베이스 연결?(파이참)
Admin
장고 서버 실행(python manage.py runserver) > http 주소로 접속 > /admin으로 접속하면 관리자 페이지를 확인할 수 있다.
일단 다시 서버를 중지하고(ctrl + C) 관리자 페이지 세팅을 해보자.
- 관리자 계정 생성
- python manage.py createsuperuser
- Username, Email, Password 생성
- 다시 runserver 해서 접속한 후 로그인하면 위와 같은 화면이 뜸.
- Groups와 Users탭이 있는데, 이중 Users탭은 생성한 superuser를 관리하는 페이지이다.
- 관리자 페이지에 모델 등록
- user > admin.py
- from .models import UserModel : models.py의 클래스 import
- admin.site.register(UserModel) : 관리자 페이지에 모델 등록
- 저장 후(까먹지 말것!!!) 다시 runserver 해주면 바뀐 페이지를 확인할 수 있다.
- 이 페이지에서 데이터를 생성/수정할 수도 있음.
App
- 구현하고자 하는 기능들 정리해보기예를 들어, SNS 를 만드는 것이 목표라면 크게 세가지 기능 구현을 생각해볼 수 있다.
- 사용자 관리 (회원가입 / 로그인 / 로그아웃)
- 글쓰기
- 친구 만들기 등등…
- 프로젝트 구조를 만들 때에는 내가 만들고자 하는 것이 무엇인지, 구현하고자 하는 기능이 무엇인지를 생각해본다.
- 기능 관리 단위로 App 만들기따라서, user앱과 tweet앱을 생성하여 구조를 잡을 수 있다.
- 그 다음, 이 기능들을 어떻게 나누어 관리하는 것이 효율적일지를 생각해본다. 이 경우 크게 ‘사용자’와 ‘글’로 나눌 수 있다.
Model
- ORM (Object Relational Mapping) 이란?Django 프로젝트의 구조를 한번 더 살펴보자.장고는 ORM이라는 (database) model을 통해 DB에 접근한다. 이러한 model은 app별로 관리된다.
- 데이터베이스를 하나의 객체(Object)로 보고, SQL 언어가 아닌 클래스로 표현하는 데이터베이스 형태이다. 장고는 ORM 데이터베이스 모델을 사용한다.
- Model(ORM) 구축하기
- Model에 필요한 정보들이 무엇인지 생각해보기
- 사용자를 구분하는 이름
- 비밀번호
- 상태메시지
- 생년월일 등등
- 이 때, 넣고 싶은 정보는 나중에 DB 테이블의 필드가 된다.
- 예를 들어 user model의 경우,
- Class 만들기
- class Meta : DB 테이블의 이름을 지정
- Field Type 필드 종류
- [AutoField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#autofield>)
- [BigAutoField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#bigautofield>)
- [BigIntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#bigintegerfield>)
- [BinaryField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#binaryfield>)
- [BooleanField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#booleanfield>)
- [CharField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#charfield>)
- [DateField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#datefield>)
- [DateTimeField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#datetimefield>)
- [DecimalField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#decimalfield>)
- [DurationField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#durationfield>)
- [EmailField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#emailfield>)
- [FileField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#filefield>)
- [FileField and FieldFile](https://docs.djangoproject.com/en/4.2/ref/models/fields/#filefield-and-fieldfile)
- [FilePathField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#filepathfield>)
- [FloatField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#floatfield>)
- [GenericIPAddressField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#genericipaddressfield>)
- [ImageField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#imagefield>)
- [IntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#integerfield>)
- [JSONField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#jsonfield>)
- [PositiveBigIntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#positivebigintegerfield>)
- [PositiveIntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#positiveintegerfield>)
- [PositiveSmallIntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#positivesmallintegerfield>)
- [SlugField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#slugfield>)
- [SmallAutoField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#smallautofield>)
- [SmallIntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#smallintegerfield>)
- [TextField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#textfield>)
- [TimeField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#timefield>)
- [URLField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#urlfield>)
- [UUIDField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#uuidfield>)
- Field Option 필드 속성
- [null](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#null>)
- [blank](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#blank>)
- [choices](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#choices>)
- [db_column](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#db-column>)
- [db_comment](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#db-comment>)
- [db_index](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#db-index>)
- [db_tablespace](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#db-tablespace>)
- [default](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#default>)
- [editable](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#editable>)
- [error_messages](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#error-messages>)
- [help_text](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#help-text>)
- [primary_key](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#primary-key>)
- [unique](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#unique>)
- [unique_for_date](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#unique-for-date>)
- [unique_for_month](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#unique-for-month>)
- [unique_for_year](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#unique-for-year>)
- [verbose_name](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#verbose-name>)
- [validators](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#validators>)
- ForeignKey : 다른 모델을 가져올때 사용. 첫번째 인자로 가져온 모델 클래스명을 기입.
- 이때 import도 잊지말고 해줘야!
- User model
- Model ⇒ DB에 적용
- Model에 필요한 정보들이 무엇인지 생각해보기
DB
- SQLite 확장프로그램 설치편집기에 DB 창이 있어 바로 열람이 가능한 파이참과는 달리, vscode 에서 DB를 열람하기 위해서는 SQLite 라는 확장프로그램을 설치해주어야 한다.공식문서를 보면 sqlite 말고도 여러 프로그램을 지원함.
- 설치 후, db.sqlite3 에서 우클릭 > Open Database 클릭 > 아래 SQLITE EXPLORER 탭 클릭을 하면 DB 창이 띄워진다.
데이터베이스 연결?(파이참)
Admin
장고 서버 실행(python manage.py runserver) > http 주소로 접속 > /admin으로 접속하면 관리자 페이지를 확인할 수 있다.
일단 다시 서버를 중지하고(ctrl + C) 관리자 페이지 세팅을 해보자.
- 관리자 계정 생성
- python manage.py createsuperuser
- Username, Email, Password 생성
- 다시 runserver 해서 접속한 후 로그인하면 위와 같은 화면이 뜸.
- Groups와 Users탭이 있는데, 이중 Users탭은 생성한 superuser를 관리하는 페이지이다.
- 관리자 페이지에 모델 등록
- user > admin.py
- from .models import UserModel : models.py의 클래스 import
- admin.site.register(UserModel) : 관리자 페이지에 모델 등록
- 저장 후(까먹지 말것!!!) 다시 runserver 해주면 바뀐 페이지를 확인할 수 있다.
- 이 페이지에서 데이터를 생성/수정할 수도 있음.
App
- 구현하고자 하는 기능들 정리해보기예를 들어, SNS 를 만드는 것이 목표라면 크게 세가지 기능 구현을 생각해볼 수 있다.
- 사용자 관리 (회원가입 / 로그인 / 로그아웃)
- 글쓰기
- 친구 만들기 등등…
- 프로젝트 구조를 만들 때에는 내가 만들고자 하는 것이 무엇인지, 구현하고자 하는 기능이 무엇인지를 생각해본다.
- 기능 관리 단위로 App 만들기따라서, user앱과 tweet앱을 생성하여 구조를 잡을 수 있다.
- 그 다음, 이 기능들을 어떻게 나누어 관리하는 것이 효율적일지를 생각해본다. 이 경우 크게 ‘사용자’와 ‘글’로 나눌 수 있다.
Model
- ORM (Object Relational Mapping) 이란?Django 프로젝트의 구조를 한번 더 살펴보자.장고는 ORM이라는 (database) model을 통해 DB에 접근한다. 이러한 model은 app별로 관리된다.
- 데이터베이스를 하나의 객체(Object)로 보고, SQL 언어가 아닌 클래스로 표현하는 데이터베이스 형태이다. 장고는 ORM 데이터베이스 모델을 사용한다.
- Model(ORM) 구축하기
- Model에 필요한 정보들이 무엇인지 생각해보기
- 사용자를 구분하는 이름
- 비밀번호
- 상태메시지
- 생년월일 등등
- 이 때, 넣고 싶은 정보는 나중에 DB 테이블의 필드가 된다.
- 예를 들어 user model의 경우,
- Class 만들기
- class Meta : DB 테이블의 이름을 지정
- Field Type 필드 종류
- [AutoField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#autofield>)
- [BigAutoField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#bigautofield>)
- [BigIntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#bigintegerfield>)
- [BinaryField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#binaryfield>)
- [BooleanField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#booleanfield>)
- [CharField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#charfield>)
- [DateField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#datefield>)
- [DateTimeField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#datetimefield>)
- [DecimalField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#decimalfield>)
- [DurationField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#durationfield>)
- [EmailField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#emailfield>)
- [FileField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#filefield>)
- [FileField and FieldFile](https://docs.djangoproject.com/en/4.2/ref/models/fields/#filefield-and-fieldfile)
- [FilePathField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#filepathfield>)
- [FloatField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#floatfield>)
- [GenericIPAddressField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#genericipaddressfield>)
- [ImageField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#imagefield>)
- [IntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#integerfield>)
- [JSONField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#jsonfield>)
- [PositiveBigIntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#positivebigintegerfield>)
- [PositiveIntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#positiveintegerfield>)
- [PositiveSmallIntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#positivesmallintegerfield>)
- [SlugField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#slugfield>)
- [SmallAutoField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#smallautofield>)
- [SmallIntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#smallintegerfield>)
- [TextField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#textfield>)
- [TimeField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#timefield>)
- [URLField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#urlfield>)
- [UUIDField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#uuidfield>)
- Field Option 필드 속성
- [null](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#null>)
- [blank](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#blank>)
- [choices](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#choices>)
- [db_column](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#db-column>)
- [db_comment](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#db-comment>)
- [db_index](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#db-index>)
- [db_tablespace](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#db-tablespace>)
- [default](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#default>)
- [editable](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#editable>)
- [error_messages](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#error-messages>)
- [help_text](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#help-text>)
- [primary_key](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#primary-key>)
- [unique](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#unique>)
- [unique_for_date](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#unique-for-date>)
- [unique_for_month](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#unique-for-month>)
- [unique_for_year](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#unique-for-year>)
- [verbose_name](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#verbose-name>)
- [validators](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#validators>)
- ForeignKey : 다른 모델을 가져올때 사용. 첫번째 인자로 가져온 모델 클래스명을 기입.
- 이때 import도 잊지말고 해줘야!
- User model
- Model ⇒ DB에 적용
- Model에 필요한 정보들이 무엇인지 생각해보기
DB
- SQLite 확장프로그램 설치편집기에 DB 창이 있어 바로 열람이 가능한 파이참과는 달리, vscode 에서 DB를 열람하기 위해서는 SQLite 라는 확장프로그램을 설치해주어야 한다.공식문서를 보면 sqlite 말고도 여러 프로그램을 지원함.
- 설치 후, db.sqlite3 에서 우클릭 > Open Database 클릭 > 아래 SQLITE EXPLORER 탭 클릭을 하면 DB 창이 띄워진다.
데이터베이스 연결?(파이참)
Admin
장고 서버 실행(python manage.py runserver) > http 주소로 접속 > /admin으로 접속하면 관리자 페이지를 확인할 수 있다.
일단 다시 서버를 중지하고(ctrl + C) 관리자 페이지 세팅을 해보자.
- 관리자 계정 생성
- python manage.py createsuperuser
- Username, Email, Password 생성
- 다시 runserver 해서 접속한 후 로그인하면 위와 같은 화면이 뜸.
- Groups와 Users탭이 있는데, 이중 Users탭은 생성한 superuser를 관리하는 페이지이다.
- 관리자 페이지에 모델 등록
- user > admin.py
- from .models import UserModel : models.py의 클래스 import
- admin.site.register(UserModel) : 관리자 페이지에 모델 등록
- 저장 후(까먹지 말것!!!) 다시 runserver 해주면 바뀐 페이지를 확인할 수 있다.
- 이 페이지에서 데이터를 생성/수정할 수도 있음.
App
- 구현하고자 하는 기능들 정리해보기예를 들어, SNS 를 만드는 것이 목표라면 크게 세가지 기능 구현을 생각해볼 수 있다.
- 사용자 관리 (회원가입 / 로그인 / 로그아웃)
- 글쓰기
- 친구 만들기 등등…
- 프로젝트 구조를 만들 때에는 내가 만들고자 하는 것이 무엇인지, 구현하고자 하는 기능이 무엇인지를 생각해본다.
- 기능 관리 단위로 App 만들기따라서, user앱과 tweet앱을 생성하여 구조를 잡을 수 있다.
- 그 다음, 이 기능들을 어떻게 나누어 관리하는 것이 효율적일지를 생각해본다. 이 경우 크게 ‘사용자’와 ‘글’로 나눌 수 있다.
Model
- ORM (Object Relational Mapping) 이란?Django 프로젝트의 구조를 한번 더 살펴보자.장고는 ORM이라는 (database) model을 통해 DB에 접근한다. 이러한 model은 app별로 관리된다.
- 데이터베이스를 하나의 객체(Object)로 보고, SQL 언어가 아닌 클래스로 표현하는 데이터베이스 형태이다. 장고는 ORM 데이터베이스 모델을 사용한다.
- Model(ORM) 구축하기
- Model에 필요한 정보들이 무엇인지 생각해보기
- 사용자를 구분하는 이름
- 비밀번호
- 상태메시지
- 생년월일 등등
- 이 때, 넣고 싶은 정보는 나중에 DB 테이블의 필드가 된다.
- 예를 들어 user model의 경우,
- Class 만들기
- class Meta : DB 테이블의 이름을 지정
- Field Type 필드 종류
- [AutoField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#autofield>)
- [BigAutoField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#bigautofield>)
- [BigIntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#bigintegerfield>)
- [BinaryField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#binaryfield>)
- [BooleanField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#booleanfield>)
- [CharField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#charfield>)
- [DateField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#datefield>)
- [DateTimeField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#datetimefield>)
- [DecimalField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#decimalfield>)
- [DurationField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#durationfield>)
- [EmailField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#emailfield>)
- [FileField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#filefield>)
- [FileField and FieldFile](https://docs.djangoproject.com/en/4.2/ref/models/fields/#filefield-and-fieldfile)
- [FilePathField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#filepathfield>)
- [FloatField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#floatfield>)
- [GenericIPAddressField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#genericipaddressfield>)
- [ImageField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#imagefield>)
- [IntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#integerfield>)
- [JSONField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#jsonfield>)
- [PositiveBigIntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#positivebigintegerfield>)
- [PositiveIntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#positiveintegerfield>)
- [PositiveSmallIntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#positivesmallintegerfield>)
- [SlugField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#slugfield>)
- [SmallAutoField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#smallautofield>)
- [SmallIntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#smallintegerfield>)
- [TextField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#textfield>)
- [TimeField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#timefield>)
- [URLField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#urlfield>)
- [UUIDField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#uuidfield>)
- Field Option 필드 속성
- [null](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#null>)
- [blank](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#blank>)
- [choices](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#choices>)
- [db_column](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#db-column>)
- [db_comment](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#db-comment>)
- [db_index](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#db-index>)
- [db_tablespace](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#db-tablespace>)
- [default](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#default>)
- [editable](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#editable>)
- [error_messages](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#error-messages>)
- [help_text](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#help-text>)
- [primary_key](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#primary-key>)
- [unique](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#unique>)
- [unique_for_date](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#unique-for-date>)
- [unique_for_month](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#unique-for-month>)
- [unique_for_year](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#unique-for-year>)
- [verbose_name](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#verbose-name>)
- [validators](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#validators>)
- ForeignKey : 다른 모델을 가져올때 사용. 첫번째 인자로 가져온 모델 클래스명을 기입.
- 이때 import도 잊지말고 해줘야!
- User model
- Model ⇒ DB에 적용
- Model에 필요한 정보들이 무엇인지 생각해보기
DB
- SQLite 확장프로그램 설치편집기에 DB 창이 있어 바로 열람이 가능한 파이참과는 달리, vscode 에서 DB를 열람하기 위해서는 SQLite 라는 확장프로그램을 설치해주어야 한다.공식문서를 보면 sqlite 말고도 여러 프로그램을 지원함.
- 설치 후, db.sqlite3 에서 우클릭 > Open Database 클릭 > 아래 SQLITE EXPLORER 탭 클릭을 하면 DB 창이 띄워진다.
데이터베이스 연결?(파이참)
Admin
장고 서버 실행(python manage.py runserver) > http 주소로 접속 > /admin으로 접속하면 관리자 페이지를 확인할 수 있다.
일단 다시 서버를 중지하고(ctrl + C) 관리자 페이지 세팅을 해보자.
- 관리자 계정 생성
- python manage.py createsuperuser
- Username, Email, Password 생성
- 다시 runserver 해서 접속한 후 로그인하면 위와 같은 화면이 뜸.
- Groups와 Users탭이 있는데, 이중 Users탭은 생성한 superuser를 관리하는 페이지이다.
- 관리자 페이지에 모델 등록
- user > admin.py
- from .models import UserModel : models.py의 클래스 import
- admin.site.register(UserModel) : 관리자 페이지에 모델 등록
- 저장 후(까먹지 말것!!!) 다시 runserver 해주면 바뀐 페이지를 확인할 수 있다.
- 이 페이지에서 데이터를 생성/수정할 수도 있음.
App
- 구현하고자 하는 기능들 정리해보기예를 들어, SNS 를 만드는 것이 목표라면 크게 세가지 기능 구현을 생각해볼 수 있다.
- 사용자 관리 (회원가입 / 로그인 / 로그아웃)
- 글쓰기
- 친구 만들기 등등…
- 프로젝트 구조를 만들 때에는 내가 만들고자 하는 것이 무엇인지, 구현하고자 하는 기능이 무엇인지를 생각해본다.
- 기능 관리 단위로 App 만들기따라서, user앱과 tweet앱을 생성하여 구조를 잡을 수 있다.
- 그 다음, 이 기능들을 어떻게 나누어 관리하는 것이 효율적일지를 생각해본다. 이 경우 크게 ‘사용자’와 ‘글’로 나눌 수 있다.
Model
- ORM (Object Relational Mapping) 이란?Django 프로젝트의 구조를 한번 더 살펴보자.장고는 ORM이라는 (database) model을 통해 DB에 접근한다. 이러한 model은 app별로 관리된다.
- 데이터베이스를 하나의 객체(Object)로 보고, SQL 언어가 아닌 클래스로 표현하는 데이터베이스 형태이다. 장고는 ORM 데이터베이스 모델을 사용한다.
- Model(ORM) 구축하기
- Model에 필요한 정보들이 무엇인지 생각해보기
- 사용자를 구분하는 이름
- 비밀번호
- 상태메시지
- 생년월일 등등
- 이 때, 넣고 싶은 정보는 나중에 DB 테이블의 필드가 된다.
- 예를 들어 user model의 경우,
- Class 만들기
- class Meta : DB 테이블의 이름을 지정
- Field Type 필드 종류
- [AutoField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#autofield>)
- [BigAutoField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#bigautofield>)
- [BigIntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#bigintegerfield>)
- [BinaryField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#binaryfield>)
- [BooleanField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#booleanfield>)
- [CharField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#charfield>)
- [DateField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#datefield>)
- [DateTimeField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#datetimefield>)
- [DecimalField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#decimalfield>)
- [DurationField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#durationfield>)
- [EmailField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#emailfield>)
- [FileField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#filefield>)
- [FileField and FieldFile](https://docs.djangoproject.com/en/4.2/ref/models/fields/#filefield-and-fieldfile)
- [FilePathField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#filepathfield>)
- [FloatField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#floatfield>)
- [GenericIPAddressField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#genericipaddressfield>)
- [ImageField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#imagefield>)
- [IntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#integerfield>)
- [JSONField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#jsonfield>)
- [PositiveBigIntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#positivebigintegerfield>)
- [PositiveIntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#positiveintegerfield>)
- [PositiveSmallIntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#positivesmallintegerfield>)
- [SlugField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#slugfield>)
- [SmallAutoField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#smallautofield>)
- [SmallIntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#smallintegerfield>)
- [TextField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#textfield>)
- [TimeField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#timefield>)
- [URLField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#urlfield>)
- [UUIDField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#uuidfield>)
- Field Option 필드 속성
- [null](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#null>)
- [blank](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#blank>)
- [choices](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#choices>)
- [db_column](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#db-column>)
- [db_comment](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#db-comment>)
- [db_index](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#db-index>)
- [db_tablespace](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#db-tablespace>)
- [default](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#default>)
- [editable](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#editable>)
- [error_messages](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#error-messages>)
- [help_text](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#help-text>)
- [primary_key](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#primary-key>)
- [unique](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#unique>)
- [unique_for_date](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#unique-for-date>)
- [unique_for_month](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#unique-for-month>)
- [unique_for_year](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#unique-for-year>)
- [verbose_name](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#verbose-name>)
- [validators](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#validators>)
- ForeignKey : 다른 모델을 가져올때 사용. 첫번째 인자로 가져온 모델 클래스명을 기입.
- 이때 import도 잊지말고 해줘야!
- User model
- Model ⇒ DB에 적용
- Model에 필요한 정보들이 무엇인지 생각해보기
DB
- SQLite 확장프로그램 설치편집기에 DB 창이 있어 바로 열람이 가능한 파이참과는 달리, vscode 에서 DB를 열람하기 위해서는 SQLite 라는 확장프로그램을 설치해주어야 한다.공식문서를 보면 sqlite 말고도 여러 프로그램을 지원함.
- 설치 후, db.sqlite3 에서 우클릭 > Open Database 클릭 > 아래 SQLITE EXPLORER 탭 클릭을 하면 DB 창이 띄워진다.
데이터베이스 연결?(파이참)
Admin
장고 서버 실행(python manage.py runserver) > http 주소로 접속 > /admin으로 접속하면 관리자 페이지를 확인할 수 있다.
일단 다시 서버를 중지하고(ctrl + C) 관리자 페이지 세팅을 해보자.
- 관리자 계정 생성
- python manage.py createsuperuser
- Username, Email, Password 생성
- 다시 runserver 해서 접속한 후 로그인하면 위와 같은 화면이 뜸.
- Groups와 Users탭이 있는데, 이중 Users탭은 생성한 superuser를 관리하는 페이지이다.
- 관리자 페이지에 모델 등록
- user > admin.py
- from .models import UserModel : models.py의 클래스 import
- admin.site.register(UserModel) : 관리자 페이지에 모델 등록
- 저장 후(까먹지 말것!!!) 다시 runserver 해주면 바뀐 페이지를 확인할 수 있다.
- 이 페이지에서 데이터를 생성/수정할 수도 있음.
App
- 구현하고자 하는 기능들 정리해보기예를 들어, SNS 를 만드는 것이 목표라면 크게 세가지 기능 구현을 생각해볼 수 있다.
- 사용자 관리 (회원가입 / 로그인 / 로그아웃)
- 글쓰기
- 친구 만들기 등등…
- 프로젝트 구조를 만들 때에는 내가 만들고자 하는 것이 무엇인지, 구현하고자 하는 기능이 무엇인지를 생각해본다.
- 기능 관리 단위로 App 만들기따라서, user앱과 tweet앱을 생성하여 구조를 잡을 수 있다.
- 그 다음, 이 기능들을 어떻게 나누어 관리하는 것이 효율적일지를 생각해본다. 이 경우 크게 ‘사용자’와 ‘글’로 나눌 수 있다.
Model
- ORM (Object Relational Mapping) 이란?Django 프로젝트의 구조를 한번 더 살펴보자.장고는 ORM이라는 (database) model을 통해 DB에 접근한다. 이러한 model은 app별로 관리된다.
- 데이터베이스를 하나의 객체(Object)로 보고, SQL 언어가 아닌 클래스로 표현하는 데이터베이스 형태이다. 장고는 ORM 데이터베이스 모델을 사용한다.
- Model(ORM) 구축하기
- Model에 필요한 정보들이 무엇인지 생각해보기
- 사용자를 구분하는 이름
- 비밀번호
- 상태메시지
- 생년월일 등등
- 이 때, 넣고 싶은 정보는 나중에 DB 테이블의 필드가 된다.
- 예를 들어 user model의 경우,
- Class 만들기
- class Meta : DB 테이블의 이름을 지정
- Field Type 필드 종류
- [AutoField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#autofield>)
- [BigAutoField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#bigautofield>)
- [BigIntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#bigintegerfield>)
- [BinaryField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#binaryfield>)
- [BooleanField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#booleanfield>)
- [CharField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#charfield>)
- [DateField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#datefield>)
- [DateTimeField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#datetimefield>)
- [DecimalField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#decimalfield>)
- [DurationField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#durationfield>)
- [EmailField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#emailfield>)
- [FileField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#filefield>)
- [FileField and FieldFile](https://docs.djangoproject.com/en/4.2/ref/models/fields/#filefield-and-fieldfile)
- [FilePathField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#filepathfield>)
- [FloatField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#floatfield>)
- [GenericIPAddressField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#genericipaddressfield>)
- [ImageField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#imagefield>)
- [IntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#integerfield>)
- [JSONField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#jsonfield>)
- [PositiveBigIntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#positivebigintegerfield>)
- [PositiveIntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#positiveintegerfield>)
- [PositiveSmallIntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#positivesmallintegerfield>)
- [SlugField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#slugfield>)
- [SmallAutoField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#smallautofield>)
- [SmallIntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#smallintegerfield>)
- [TextField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#textfield>)
- [TimeField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#timefield>)
- [URLField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#urlfield>)
- [UUIDField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#uuidfield>)
- Field Option 필드 속성
- [null](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#null>)
- [blank](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#blank>)
- [choices](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#choices>)
- [db_column](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#db-column>)
- [db_comment](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#db-comment>)
- [db_index](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#db-index>)
- [db_tablespace](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#db-tablespace>)
- [default](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#default>)
- [editable](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#editable>)
- [error_messages](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#error-messages>)
- [help_text](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#help-text>)
- [primary_key](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#primary-key>)
- [unique](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#unique>)
- [unique_for_date](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#unique-for-date>)
- [unique_for_month](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#unique-for-month>)
- [unique_for_year](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#unique-for-year>)
- [verbose_name](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#verbose-name>)
- [validators](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#validators>)
- ForeignKey : 다른 모델을 가져올때 사용. 첫번째 인자로 가져온 모델 클래스명을 기입.
- 이때 import도 잊지말고 해줘야!
- User model
- Model ⇒ DB에 적용
- Model에 필요한 정보들이 무엇인지 생각해보기
DB
- SQLite 확장프로그램 설치편집기에 DB 창이 있어 바로 열람이 가능한 파이참과는 달리, vscode 에서 DB를 열람하기 위해서는 SQLite 라는 확장프로그램을 설치해주어야 한다.공식문서를 보면 sqlite 말고도 여러 프로그램을 지원함.
- 설치 후, db.sqlite3 에서 우클릭 > Open Database 클릭 > 아래 SQLITE EXPLORER 탭 클릭을 하면 DB 창이 띄워진다.
데이터베이스 연결?(파이참)
Admin
장고 서버 실행(python manage.py runserver) > http 주소로 접속 > /admin으로 접속하면 관리자 페이지를 확인할 수 있다.
일단 다시 서버를 중지하고(ctrl + C) 관리자 페이지 세팅을 해보자.
- 관리자 계정 생성
- python manage.py createsuperuser
- Username, Email, Password 생성
- 다시 runserver 해서 접속한 후 로그인하면 위와 같은 화면이 뜸.
- Groups와 Users탭이 있는데, 이중 Users탭은 생성한 superuser를 관리하는 페이지이다.
- 관리자 페이지에 모델 등록
- user > admin.py
- from .models import UserModel : models.py의 클래스 import
- admin.site.register(UserModel) : 관리자 페이지에 모델 등록
- 저장 후(까먹지 말것!!!) 다시 runserver 해주면 바뀐 페이지를 확인할 수 있다.
- 이 페이지에서 데이터를 생성/수정할 수도 있음.
App
- 구현하고자 하는 기능들 정리해보기예를 들어, SNS 를 만드는 것이 목표라면 크게 세가지 기능 구현을 생각해볼 수 있다.
- 사용자 관리 (회원가입 / 로그인 / 로그아웃)
- 글쓰기
- 친구 만들기 등등…
- 프로젝트 구조를 만들 때에는 내가 만들고자 하는 것이 무엇인지, 구현하고자 하는 기능이 무엇인지를 생각해본다.
- 기능 관리 단위로 App 만들기따라서, user앱과 tweet앱을 생성하여 구조를 잡을 수 있다.
- 그 다음, 이 기능들을 어떻게 나누어 관리하는 것이 효율적일지를 생각해본다. 이 경우 크게 ‘사용자’와 ‘글’로 나눌 수 있다.
Model
- ORM (Object Relational Mapping) 이란?Django 프로젝트의 구조를 한번 더 살펴보자.장고는 ORM이라는 (database) model을 통해 DB에 접근한다. 이러한 model은 app별로 관리된다.
- 데이터베이스를 하나의 객체(Object)로 보고, SQL 언어가 아닌 클래스로 표현하는 데이터베이스 형태이다. 장고는 ORM 데이터베이스 모델을 사용한다.
- Model(ORM) 구축하기
- Model에 필요한 정보들이 무엇인지 생각해보기
- 사용자를 구분하는 이름
- 비밀번호
- 상태메시지
- 생년월일 등등
- 이 때, 넣고 싶은 정보는 나중에 DB 테이블의 필드가 된다.
- 예를 들어 user model의 경우,
- Class 만들기
- class Meta : DB 테이블의 이름을 지정
- Field Type 필드 종류
- [AutoField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#autofield>)
- [BigAutoField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#bigautofield>)
- [BigIntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#bigintegerfield>)
- [BinaryField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#binaryfield>)
- [BooleanField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#booleanfield>)
- [CharField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#charfield>)
- [DateField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#datefield>)
- [DateTimeField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#datetimefield>)
- [DecimalField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#decimalfield>)
- [DurationField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#durationfield>)
- [EmailField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#emailfield>)
- [FileField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#filefield>)
- [FileField and FieldFile](https://docs.djangoproject.com/en/4.2/ref/models/fields/#filefield-and-fieldfile)
- [FilePathField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#filepathfield>)
- [FloatField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#floatfield>)
- [GenericIPAddressField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#genericipaddressfield>)
- [ImageField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#imagefield>)
- [IntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#integerfield>)
- [JSONField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#jsonfield>)
- [PositiveBigIntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#positivebigintegerfield>)
- [PositiveIntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#positiveintegerfield>)
- [PositiveSmallIntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#positivesmallintegerfield>)
- [SlugField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#slugfield>)
- [SmallAutoField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#smallautofield>)
- [SmallIntegerField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#smallintegerfield>)
- [TextField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#textfield>)
- [TimeField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#timefield>)
- [URLField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#urlfield>)
- [UUIDField](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#uuidfield>)
- Field Option 필드 속성
- [null](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#null>)
- [blank](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#blank>)
- [choices](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#choices>)
- [db_column](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#db-column>)
- [db_comment](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#db-comment>)
- [db_index](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#db-index>)
- [db_tablespace](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#db-tablespace>)
- [default](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#default>)
- [editable](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#editable>)
- [error_messages](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#error-messages>)
- [help_text](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#help-text>)
- [primary_key](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#primary-key>)
- [unique](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#unique>)
- [unique_for_date](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#unique-for-date>)
- [unique_for_month](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#unique-for-month>)
- [unique_for_year](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#unique-for-year>)
- [verbose_name](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#verbose-name>)
- [validators](<https://docs.djangoproject.com/en/4.2/ref/models/fields/#validators>)
- ForeignKey : 다른 모델을 가져올때 사용. 첫번째 인자로 가져온 모델 클래스명을 기입.
- 이때 import도 잊지말고 해줘야!
- User model
- Model ⇒ DB에 적용
- Model에 필요한 정보들이 무엇인지 생각해보기
DB
- SQLite 확장프로그램 설치편집기에 DB 창이 있어 바로 열람이 가능한 파이참과는 달리, vscode 에서 DB를 열람하기 위해서는 SQLite 라는 확장프로그램을 설치해주어야 한다.공식문서를 보면 sqlite 말고도 여러 프로그램을 지원함.
- 설치 후, db.sqlite3 에서 우클릭 > Open Database 클릭 > 아래 SQLITE EXPLORER 탭 클릭을 하면 DB 창이 띄워진다.
데이터베이스 연결?(파이참)
Admin
장고 서버 실행(python manage.py runserver) > http 주소로 접속 > /admin으로 접속하면 관리자 페이지를 확인할 수 있다.
일단 다시 서버를 중지하고(ctrl + C) 관리자 페이지 세팅을 해보자.
- 관리자 계정 생성
- python manage.py createsuperuser
- Username, Email, Password 생성
- 다시 runserver 해서 접속한 후 로그인하면 위와 같은 화면이 뜸.
- Groups와 Users탭이 있는데, 이중 Users탭은 생성한 superuser를 관리하는 페이지이다.
- 관리자 페이지에 모델 등록
- user > admin.py
- from .models import UserModel : models.py의 클래스 import
- admin.site.register(UserModel) : 관리자 페이지에 모델 등록
- 저장 후(까먹지 말것!!!) 다시 runserver 해주면 바뀐 페이지를 확인할 수 있다.
- 이 페이지에서 데이터를 생성/수정할 수도 있음.
'Django & DRF' 카테고리의 다른 글
[Django] Co.Meet 커뮤니티 페이지 - 팀프로젝트 KPT (1) | 2023.04.18 |
---|---|
[Django] .env 파일, secret key (0) | 2023.04.12 |
[Django] SNS 프로젝트 - 화면 띄우기(회원가입, 로그인) (0) | 2023.04.10 |
[Django] 프로젝트 구축하기 (0) | 2023.04.07 |
[Django] VSCode로 Django 시작하기 (0) | 2023.04.05 |