객체 지향 프로그래밍 언어의 객체와 데이터베이스의 데이터를 매핑하는 기술이다.
Django 는 Python 언어를 사용하지만 데이터베이스는 SQL 언어를 사용한다.ORM 은 Django 와 데이터베이스 사이에서 언어 번역자 역할을 수행한다.
데이터베이스의 복잡한 SQL 쿼리문을, SQL 대신 직관적인 Python 코드로 데이터베이스에 요청할 수 있게 해주는 도구이다.
Article : 모델 클래스objects : 메니저all : QeurySet APIArticle.objects.all()

단, DB → Django에서 DB가 조회 결과를 전달하면, Django ORM이 해당 데이터를 변환하여 반환한다.
기본적인 데이터 처리 기능인 생성, 조회, 수정, 삭제를 묶어서 이르는 말이다.
create: 데이터 생성/저장read: 데이터 조회update: 데이터 수정/갱신delete: 데이터 삭제
IPython 은 일반 파이썬 셀보다 자동 완성 등 편리한 파이썬 작업 환경을 만들어 주는 도구이다.pip install ipython
python .\manage.py shell -v 2

all() 메서드로 QuerySet 반환 확인
빈 객체 생성 후 값 할당 및 저장

인스턴스에 제목과 본문 내용을 추가

DB 저장 요청
save() 요청까지 완료해야 데이터베이스에 저장이 된다.

다른 방법으로 create() 메서드를 사용하면 한 번에 생성 및 저장을 한다.


지금은 전체 게시글 조회를 해보겠다.
from django.urls import path
from django.urls import path, include
from . import views
app_name = 'articles'
urlpatterns = [
path("", views.index, name= "index")
]
from django.shortcuts import render
from .models import Article
# Create your views here.
def index(request):
articles = Article.objects.all()
context = {
"articles": articles,
}
return render(request, "articles/index.html", context)
<h1>Articles</h1>
<hr>
{% for article in articles %}
<div>
<p>글 번호: {{ article.pk }}</p>
<p>글 제목: {{ article.title }}</p>
<p>글 내용: {{ article.content }}</p>
</div>
<hr>
{% endfor %}
