python manage.py shell
(Django 쉘은 Django 프로젝트를 쉘에서 바로 접근 할 수 있도록 하는 환경 설정이 더해진 것)
data_model = {model}.objects.create( {field_name}=value, ... )
# save를 이용하면 데이터 객체를 생성하는 타이밍과
# 실제로 데이터베이스에 반영하는 과정을 분리할 수 있습니다
data_model = {model}( {field_name}=value, ... )
data_model.save()
# 모든 데이터 조회하기
data = {model}.obejcts.all()
# 하나의 데이터 조회하기
data = {model}.objects.get(field=value)
# 조건에 맞는 여러 데이터 조회하기
data = {model}.objects.filter(field=value)
# 정렬해서 데이터 조회하기
data = {model}.objects.order_by('field_1', '-field_2')
# 데이터의 개수 세기
rows = {model}.objects.count()
# 특정 조건을 제외한 데이터 조회하기
data = {model}.objects.exclude(field=value)
# 체인으로 연결해서 조회하기
data = {model}.objects.filter(price=10000).order_by('name')
data = {model}.objects.filter(price=10000)
data = data.order_by('name')
# 수정할 데이터 객체를 가져온 다음 원하는 필드를 수정하고 save()를 호출
data = {model}.objects.get(id=1)
data.name = 'Woojae'
data.save()
# 삭제할 데이터 객체를 가져온 다음 delete()를 호출
data = {model}.objects.get(id=3)
data.delete()
모든 데이터 조회는 조건 키워드를 함께 사용하여 조회할 수 있으며 {field_name}__{keyword}={condition} 형태로 사용합니다.
# __exact는 대소문자를 구분해서 조건과 정확히 일치 하는지를 체크하며
# __iexact는 대소문자를 구분 하지 않고 일치하는 지를 체크합니다.
data = {model}.objects.filter(name__iexact='chicken')
# __containss는 지정한 문자열을 포함 하는지를 체크합니다.
# 마찬가지로 __icontains는 대소문자를 구분하지 않고 체크합니다.
data = {model}.objects.filter(name__contains='chicken')
# __range는 지정한 범위 내에 포함 되는지 체크합니다.
data = {model}.objects.filter(price__range=(1000,5000))
import datetime
start_date = datetime.date(2020,8,12)
end_date = datetime.date(2020,9,12)
data = {model}.objects.filter(pub_date__range=(start_date,end_date))
# __lt , __gt, __lte, __gte은
# 미만 (less-than), 초과 (greater-than), 이하 (less-than-or-equal),
# 이상(greater-than-or-equal)인 데이터를 조회합니다.
data = {model}.objects.filter(age__gt=25)
# __in은 주어진 리스트 안에 존재하는 자료를 조회합니다.
data = {model}.objects.filter(age__in=[21,25,27])
QuerySet은 리스트와 매우 유사합니다.
django의 관리자 도구는 매우 편합니다.
admin.py에서 admin.site.register(모델명)을 적어주면, 관리자 페이지에서 볼 수 있습니다.
settings.py아래에
STATIC_ROOT = os.path.join(BASE_DIR, 'static')를 적어주고,
python manage.py collectstatic을 해서 static파일 한곳에 모으기