내일 배움 캠프 후발대
django / database 용어 정리
- RDBMS(RDB) : Relational DataBase Management system의 약자로 MySql, OracleDB 등 관계형 데이터베이스를 지칭한다.
- Sql : Structured Query Language의 약자로 데이터베이스의 CRUD를 위해 사용되는 언어이다.
- CRUD : Create(생성), Read(읽기), Update(갱신), Delete(삭제)
- NoSql : Not Only Sql의 약자로 관계형 데이터베이스가 아닌 다른 형태로 데이터를 저장하며, mongoDB 등이 여기에 해당한다.
- Table : DB는 기본적으로 테이블로 이루어져 있으며, 필드와 레코드가 존재한다.
- RDBMS(RDB) : Relational DataBase Management system의 약자로 MySql, OracleDB 등 관계형 데이터베이스를 지칭한다.
- Sql : Structured Query Language의 약자로 데이터베이스의 CRUD를 위해 사용되는 언어이다.
- CRUD : Create(생성), Read(읽기), Update(갱신), Delete(삭제)
- NoSql : Not Only Sql의 약자로 관계형 데이터베이스가 아닌 다른 형태로 데이터를 저장하며, mongoDB 등이 여기에 해당한다.
- Table : DB는 기본적으로 테이블로 이루어져 있으며, 필드와 레코드가 존재한다.
중요 *point
예)
id username password
1 user 1234 데이터베이스: 레코드 row,튜플
2 chlee 12345 장고:인스턴스,오브젝트
- 데이터베이스 키 종류
- FK : Foreign Key의 약자이며, 다른 테이블을 참조 할 때 사용된다.
예) 회원정보
username
password
birthday
gender
age
email
- UK : Unique Key의 약자이며, 중복 값을 허용하지 않는다.
예) 중복되면 안 됨
age
email
- PK : Primary Key의 약자이며, 테이블에서는 반드시 한개의 PK가 존재해야 한다.
- PK는 두개 이상 존재 할 수 없고, UK와 마찬가지로 중복 값을 허용하지 않는다.
- Foreign Key를 사용할 경우 참조 할 테이블의 PK를 바라본다.
- http method 종
- request를 보낼 때 어떤 용도의 요청을 보낼 지 선택하며, CRUD와 1:1 매칭됩니다.
logout(request)
return HttpRespose("로그아웃")
- GET : 데이터 조회(Read)
def user_view(request):
if reques.method == "GET"
return HttpResponsea("정보주세요!")
- POST : 데이터 생성(Create)
def user_view(request):
if reques.method == "POST"
return HttpResponsea("생성해주세요!")
- PUT : 데이터 수정(Update)
def user_view(request):
if reques.method == "PUT"
return HttpResponsea("수정해주세요!")
- DELETE : 데이터 삭제(Delete)
def user_view(request):
if reques.method == "DELETE"
return HttpResponsea("삭제해주세요!")
django 프로젝트 구조
- settings.py
- django 프로젝트를 실행 할 때 해당 파일을 참조한다.
- 데이터베이스 설정, 앱 설정, 기본 정책 설정 등을 할 수 있다.
- models.py
- DB에 테이블을 추가하고 관리 할 때 사용된다.
- 테이블에 들어갈 필드, 필드의 속성값 등을 설정 할 수 있다.
- python manage.py makemigrations / miarate 명령어를 통해 설정을 DB에 반영시킬 수 있다.
- views.py
- django 에서 request 데이터를 받은 후 처리 할 전반적인 로직이 들어간다.
- urls.py에서 views에 있는 class나 함수를 호출해서 사용하게 된다.
모델링 할 때 자주 사용되는 field
- 시간
- DateField
- 날짜를 입력하는 필드 ex) 2002-01-01
- TimeField
- 시간을 입력하는 필드 ex) 09:31
- DateTimeField
- 날짜, 시간을 입력하는 필드 ex) 2002-01-01 09:31
- 옵션(공통)
- [선택] auto_now_add : True일 경우 데이터가 생성되는 순간을 기록한다. 데이터가 최초 생성되는 시간과 일치한다.
- [선택] auto_now : True일 경우 데이터가 저장될 때마다 갱신되며, 데이터 최초 생성 일 혹은 수정 시간이 기록된다.
- 문자
- CharField
- 문자열을 입력하는 필드 ex) 게시글 제목입니다.
- 옵션
- [필수] max_length : 입력 할 수 있는 최대 문자 수를 지정한다.
- [선택] choices : 특정 값만 입력될 수 있도록 선택지를 설정한다.
- TextField
- 개행 가능한 문자열을 입력하는 필드 ex) 게시글 내용입니다.
- 숫자
- IntegerField
- 숫자를 입력하는 필드 ex) -100, 100
- PositiveIntegerField
- 양수를 입력하는 필드 ex) 100
- 기타
- FileField
- 파일을 업로드 하는 필드 ex) image.png
- BooleanField
- True 혹은 False를 저장하는 필드
user테이블
id username password john_date
1 user 1234 2023-04-13 19:35
2 chlee 12345 2023-04-13 19:36
3 sparta abc 2023-04-13 19:35
Artcle테이블
id user title contanet create_at
1 2 게시글의 타이틀입니다, 게시글 내용입니다. 2022-05-01