Django는 SQL 대신 ORM(object relational mapping)기능을 사용하여 DB를 관리할 수 있다. (그렇다면 SQL(Query)과 ORM은 어떠한 차이점이 있으며, 어떤 환경, 프레임워크를 사용할까?)
Django에서는 테이블을 생성하기 위해 migrate 명령을 사용해야 하며, 그 전에 테이블 작업 파일을 불러오기 위해 makemigrations 명령을 먼저 사용해야 한다.
d = 모델A(모델속성=데이터,...)
d.save()
d.id
모델A.objects.all()
# 해당 id의 데이터가 존재하면 빈 list가 반환된다
모델A.objects.filter(id=아이디_번호)
모델A.objects.get(id=아이디_번호)
모델A.objects.filter(모델속성__contains=데이터 일부)
d.모델속성 = 변경할 데이터
d.save()
d.delete()
d.연결모델명_set
다음과 같이 order_by를 사용하여 데이터를 정렬하여 가져올 수 있다.
data_list = modelA.objects.order_by('모델속성')
역순으로 정렬하여 가져오고 싶을 땐 모델속성에 마이너스 부호(-)를 앞에 넣어주면 된다.
data_list = modelA.objects.order_by('-모델속성')
render함수는 다음과 같이 사용할 수 있다.
django.shortcuts.render(request, template_name, context=None)
- request: 응답할 request 객체
- template_name: 템플릿 이름
- context: dictionary 타입의 데이터
Reference
템플릿 태그 정리
{% if 조건문1 %}
<p>...</p>
{% elif 조건문2 %}
<p>...</p>
{% else %}
<p>...</p>
{% endif %}
{% for item in list %}
<p>순서: {{ forloop.counter }}</p>
<p>{{ item }}</p>
<p>{{ item.속성 }}</p>
{% endfor %}
존재하지 않음(404)페이지 출력하기
modelA.objects.get(id=...)대신에 get_object_or_404(modelA, pk=...)을 대입하여 존재하지 않은 페이지 접근에 대해 404페이지로 대처할 수 있다.
django.shortcuts.get_object_or_404(klass, *args, **kwargs)
Reference