[Django] 장고 Model
🎈 Model
모델 생성 & 적용 과정
사용할 데이터 확인 → 데이터 모델링 → 데이터에 맞는 field 작성 → 모델 생성 / 변경 → django 반영
모델 생성 & 적용 과정
사용할 데이터 확인 → 데이터 모델링 → 데이터에 맞는 field 작성 → 모델 생성 / 변경 → django 반영
django에서 model 생성.
#models.py from django.db import models class Menu(models.Model): name = models.CharField(max_length=50) price = models.IntegerField() img_path = models.TextField()
🎈 Migration
마이그레이션(Migration)은 모델(Model)의 변경 사항 즉 Django 프로젝트의 데이터 구조 변경 사항을 관리하기 위한 Django만의 관리 방법이다. 변경될 때마다 히스토리를 하나씩 만들어 두고 마치 블럭을 갈아 끼우듯 생성한 히스토리를 실제 데이터베이스에 반영하는 거죠. 그리고 이 모든 과정은 Django의 ORM(Object-Relational Mapping)을 통해 진행한다.
변화하여 병합할 Migrations 을 생성.
python manage.py makemigrations
전체 migrations 확인
python manage.py showmigrations
ORM 을 통해 sql 로 변경을 확인
python manage.py sqlmigrate {app명} {migrations num}
변경 히스토리를 기준으로 데이터베이스에 반영
python manage.py migrate
🎈 데이터 넣고 조회
해당 프로젝트로 이동 후 shell 실행
python manage.py shell
- model 가져오기
from {app}.models import {model명}
- 데이터 삽입
{model명}.objects.create({필드명}={값})
- 모든 데이터 조회
{model명}.objects.all()
- 모든 세부 데이터 조회
{model명}.objects.all().values()
🎈 데이터 상세 조회
{model}.objects.all() : 모든 데이터 조회
{model}.objects.all.values(컬럼명) : 특정 컬럼의 데이터 조회
{model}.objects.order_by(필드명) : 정렬된 데이터를 조회, 내림차순으로 할땐 필터에 '-' 붙여서 사용
{model}.objects.get(field=value) : 하나의 데이터를 조회. 여러개 나올 시 에러 발생
{model}.objects.filter(field=value) : 여러 데이터를 조회
rows = {model}.objects.count() : 데이터 개수 세기
data = {model}.objects.exclude(field=value) : 특정 조건 제외한 데이터 조회
data = {model}.objects.filter(price=10000).order_by('name') : 체인으로 연결해서 조회
조건 키워드 검색
__exact
, __iexact
: 대소문자 구분/미구분 일치하는지를 체크
data = {model}.objects.filter({필드명}__iexact='chicken')
# {필드명}이 'chicken'인 데이터를 모두 조회합니다.
# 단, 대소문자를 구분하지 않습니다.
__contains
,__icontains
: 지정한 문자열을 포함하는지 체크 (대소문자 구분/미구분)
data = {model}.objects.filter({필드명}__contains='chicken')
# {필드명}에 'chicken'이 포함된 모든 데이터를 조회합니다.
# 단, 대소문자를 구분합니다. (__contains)
__range
: 지정한 범위 내에 포함되는지 체크
data = {model}.objects.filter({필드명}__range=(1000,5000))
# {필드명}이 1000~5000인 모든 데이터를 조회합니다.
__in
: 주어진 리스트 안에 존하는 자료를 조회
data = {model}.objects.filter({필드명}__in=[21,25,27])
🎈 데이터 수정
from {app}.models import {model명}
data = {model명}.objects.get(id=1)
data.{필드명} = {변경할내용}
data.save()
{model명}.objects.all()
🎈 데이터 삭제
from {app}.models import {model명}
data = {model명}.objects.get(id=1)
data.delete()
Author And Source
이 문제에 관하여([Django] 장고 Model), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@hithae_hothae/Django-장고-Model
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
마이그레이션(Migration)은 모델(Model)의 변경 사항 즉 Django 프로젝트의 데이터 구조 변경 사항을 관리하기 위한 Django만의 관리 방법이다. 변경될 때마다 히스토리를 하나씩 만들어 두고 마치 블럭을 갈아 끼우듯 생성한 히스토리를 실제 데이터베이스에 반영하는 거죠. 그리고 이 모든 과정은 Django의 ORM(Object-Relational Mapping)을 통해 진행한다.
변화하여 병합할 Migrations 을 생성.
python manage.py makemigrations
전체 migrations 확인
python manage.py showmigrations
ORM 을 통해 sql 로 변경을 확인
python manage.py sqlmigrate {app명} {migrations num}
변경 히스토리를 기준으로 데이터베이스에 반영
python manage.py migrate
해당 프로젝트로 이동 후 shell 실행
python manage.py shell
- model 가져오기
from {app}.models import {model명} - 데이터 삽입
{model명}.objects.create({필드명}={값}) - 모든 데이터 조회
{model명}.objects.all() - 모든 세부 데이터 조회
{model명}.objects.all().values()
🎈 데이터 상세 조회
{model}.objects.all() : 모든 데이터 조회
{model}.objects.all.values(컬럼명) : 특정 컬럼의 데이터 조회
{model}.objects.order_by(필드명) : 정렬된 데이터를 조회, 내림차순으로 할땐 필터에 '-' 붙여서 사용
{model}.objects.get(field=value) : 하나의 데이터를 조회. 여러개 나올 시 에러 발생
{model}.objects.filter(field=value) : 여러 데이터를 조회
rows = {model}.objects.count() : 데이터 개수 세기
data = {model}.objects.exclude(field=value) : 특정 조건 제외한 데이터 조회
data = {model}.objects.filter(price=10000).order_by('name') : 체인으로 연결해서 조회
조건 키워드 검색
__exact
, __iexact
: 대소문자 구분/미구분 일치하는지를 체크
data = {model}.objects.filter({필드명}__iexact='chicken')
# {필드명}이 'chicken'인 데이터를 모두 조회합니다.
# 단, 대소문자를 구분하지 않습니다.
__contains
,__icontains
: 지정한 문자열을 포함하는지 체크 (대소문자 구분/미구분)
data = {model}.objects.filter({필드명}__contains='chicken')
# {필드명}에 'chicken'이 포함된 모든 데이터를 조회합니다.
# 단, 대소문자를 구분합니다. (__contains)
__range
: 지정한 범위 내에 포함되는지 체크
data = {model}.objects.filter({필드명}__range=(1000,5000))
# {필드명}이 1000~5000인 모든 데이터를 조회합니다.
__in
: 주어진 리스트 안에 존하는 자료를 조회
data = {model}.objects.filter({필드명}__in=[21,25,27])
🎈 데이터 수정
from {app}.models import {model명}
data = {model명}.objects.get(id=1)
data.{필드명} = {변경할내용}
data.save()
{model명}.objects.all()
🎈 데이터 삭제
from {app}.models import {model명}
data = {model명}.objects.get(id=1)
data.delete()
Author And Source
이 문제에 관하여([Django] 장고 Model), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@hithae_hothae/Django-장고-Model
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
{model}.objects.all() : 모든 데이터 조회
{model}.objects.all.values(컬럼명) : 특정 컬럼의 데이터 조회
{model}.objects.order_by(필드명) : 정렬된 데이터를 조회, 내림차순으로 할땐 필터에 '-' 붙여서 사용
{model}.objects.get(field=value) : 하나의 데이터를 조회. 여러개 나올 시 에러 발생
{model}.objects.filter(field=value) : 여러 데이터를 조회
rows = {model}.objects.count() : 데이터 개수 세기
data = {model}.objects.exclude(field=value) : 특정 조건 제외한 데이터 조회
data = {model}.objects.filter(price=10000).order_by('name') : 체인으로 연결해서 조회
조건 키워드 검색
__exact
, __iexact
: 대소문자 구분/미구분 일치하는지를 체크
data = {model}.objects.filter({필드명}__iexact='chicken')
# {필드명}이 'chicken'인 데이터를 모두 조회합니다.
# 단, 대소문자를 구분하지 않습니다.
__contains
,__icontains
: 지정한 문자열을 포함하는지 체크 (대소문자 구분/미구분)
data = {model}.objects.filter({필드명}__contains='chicken')
# {필드명}에 'chicken'이 포함된 모든 데이터를 조회합니다.
# 단, 대소문자를 구분합니다. (__contains)
__range
: 지정한 범위 내에 포함되는지 체크
data = {model}.objects.filter({필드명}__range=(1000,5000))
# {필드명}이 1000~5000인 모든 데이터를 조회합니다.
__in
: 주어진 리스트 안에 존하는 자료를 조회
data = {model}.objects.filter({필드명}__in=[21,25,27])
from {app}.models import {model명}
data = {model명}.objects.get(id=1)
data.{필드명} = {변경할내용}
data.save()
{model명}.objects.all()
🎈 데이터 삭제
from {app}.models import {model명}
data = {model명}.objects.get(id=1)
data.delete()
Author And Source
이 문제에 관하여([Django] 장고 Model), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@hithae_hothae/Django-장고-Model
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
from {app}.models import {model명}
data = {model명}.objects.get(id=1)
data.delete()
Author And Source
이 문제에 관하여([Django] 장고 Model), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hithae_hothae/Django-장고-Model저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)