django model을 명시해주었다면, 이제 이 모델을 이용하여
Web 화면에 출력을 할 수 있다.
(순서)
1. models.py 정의
2. views.py 함수 작성
3. urls.py 연결
4. html에 템플릿 변수로 데이터 불러오기
1. views.py 작성 ( QuerySet 과 템플릿 변수)
앞에서 정의한 Designer Model을 이용한다.
1. 먼저 views.py 안에 models.py를 import 해준다.
2. 함수 안에 모델 객체를 불러올 변수를 선언한다. (designer)
3. designer = models.Designer.objects.all() 의 뜻은, designer 변수 안에
Designers 모델의 모든 객체 정보를 담겠다는 의미이다.
4. 7번째줄의 { 'designer' : designer } 의 의미는, 'designer'라는 변수이름을 'home.html'에 return 해줄건데 그안에 designer 변수의 값을 담아서 보낸다는 의미이다.
5. 이제 'home.html' 에서는 'designer' 라는 이름을 통해서 models.Designer.objects.all()에 접근할 수 있다.
2. QuerySet (쿼리셋)
designer 변수를 출력해보면 그 값은 QuerySet 형태로 출력이 된다.
그렇다면 쿼리셋이란 무엇일까.
QuerySet은 데이터베이스에서 "전달 받은 객체의 목록"이며 Django ORM에서 발생한 자료형이다.
이 쿼리셋 메소드를 이용하여서 데이터베이스의 수많은 객체를 일일이 반환하지 않고 한번에 변수에 넘겨줄수 있는 것이다.
<쿼리셋 메소드 종류>
1. objects.all()
: 테이블 데이터의 모든 데이터를 가지고 온다.
2. objects.values()
: 쿼리셋의 내용을 딕셔너리형태로 각 객체정보를 가지는 리스트 형태로 반환한다.
3. objects.filter()
: 테이블데이터 중에 특정 조건에 맞는 행들을 반환한다.
ex) Designer.objects.filter(name = '홍길동')
4. objects.exclude()
: 특정 조건을 제외한 행들을 반환한다.
5. objects.get()
: 하나의 행만을 가지고 온다.
- .get() 은 쿼리셋이 아닌 모델 객체를 반환하는 메소드이다.
- 특정 조건에 맞는 칼럼을 반환한다.
- filter() 와 get()의 차이점은 반환하는 값이 없을 때
1) fiter()는 빈 쿼리셋을 반환하고
2) get()은 DoesNotExist라는 메시지를 띄운다
6. objects.count()
: 데이터 테이블의 행의 개수(데이터의 개수)를 반환한다.
7. first(), last()
: 첫번째와 마지막 데이터를 반환한다.
3. 장고에서 이미지 불러오기
장고에서 이미지를 업러도 후 출력하기 위해서는 몆가지 설정을 해주어야한다.
1) settings.py 에서 media 설정
- 이거는 전 게시물에서 했으니 pass
2) 프로젝트 폴더 urls.py 추가
app 폴더의 url이 아닌 project 폴더의 url에 추가를 해주어야한다.
image를 url로 열기때문에 해당열을 추가해 주어야한다. -> 자세한 사항은 요깅(장고 서빙)
4. 템플릿 변수
html 코드에서 장고의 데이터를 호츨하거나 논리적인 문법을 사용하고 싶을 때 템플릿 문법을 이용한다.
1)템플릿 변수
{{ }} : 띄어쓰기 필수
2) 템플릿 태그
{% %} : 논리적인 문법 사용
- 끝에 {% end~ %} 필수
3) 템플릿 필터
{{ ~~ | ~~ }} : 템플릿 변수의 값을 특정 형식으로 변환할 때 사용
4) 템플릿 코멘트(장고 주석)
1. {# #} : 한줄
2. {% comment %} : 여러줄
{% endcomment %}
(출력화면)
뿅
'Django > 기초' 카테고리의 다른 글
[Django] 장고 입문 6. 템플릿 상속(Templates 상속, base.html) (0) | 2021.06.13 |
---|---|
[Django] 장고 입문 4. Model 과 Admin (0) | 2021.06.13 |
[Django] 장고 입문 3. views.py, urls.py 연결 (0) | 2021.06.13 |
[Django] 장고 입문 2. 프로젝트 & 앱 생성, 연동 (0) | 2021.06.13 |
[Django] 장고 입문 1. 가상환경 설정( 장고 시작 ) (0) | 2021.06.13 |