Model & Admin 이론
Model에 어떻게 데이터를 담으며, 어떻게 View로 넘기고 화면에 띄우는지 알아보자!
데이터베이스는 장고와 별개로 존재하며 여러 개가 있을 수도 있다!
* 기본으로 SQLite, 추가로 PostgreSQL, MySQL 등.. / settings.py에서 등록
따라서 models.py와 데이터베이스를 연동하는 작업이 필요한데, 이때 입력하는 명령어는,,
Model & Admin 실습
이제 저장될 데이터 형식을 blog 앱에 있는 models.py에 작성해주자
from django.db import models
class Blog(models.Model):
title = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
body = models.TextField()
def __str__(self):
return self.title # 글 제목이 타이틀로 보이도록
이 형식을 DB에 연결 하려면,,
이제 서버를 실행하고 /admin 페이지로 접속해보자
여기에 아까 정의한 Blog 데이터 형식을 추가하려면,,
from django.contrib import admin
from .models import Blog
admin.site.register(Blog)
앱의 admin.py에 Blog 클래스를 추가해야 한다
Queryset & Method
Model의 데이터가 template에 출력되려면 항상 views.py를 거쳐야 한다!
from django.shortcuts import render
from .models import Blog
def home(request):
blogs = Blog.objects #쿼리셋 -> 모델의 Blog 객체 목록을 변수에 저장
return render(request, 'home.html', {'blogs': blogs})
views.py에 models.py의 Blog 객체 목록(쿼리셋)을 받고 home.html을 띄우도록 코드 작성
쿼리셋을 활용해 데이터베이스 기능을 정렬 및 처리해주는 방법이 메소드다
즉, 메소드를 활용해 데이터를 home.html 파일에 띄우는 방식은 다음과 같다
{% for blog in blogs.all%}
<h1>{{blog.title}}</h1>
<p>{{blog.pub_date}}</p>
<p>{{blog.body}}</p>
<br><br>
{%endfor%}
<!--
쿼리셋과 메소드의 형식
모델.쿼리셋(objects).메소드
즉, 'blogs.all' = 'Blog.objects.all'
* all은 해당 쿼리셋의 데이터를 모두 지칭하는 메소드
!-->
for 탬플릿 태그로 blog.all을 순회하면서 blog 변수에 넣고 model의 변수 하나하나를 출력하는 것이다
Bootstrap
부트스트랩(Bootstrap)은 트위터 개발자들이 만든 CSS/JS 기반 오픈소스 웹 프레임워크이다
무료이며 모든 브라우저 호환, 반응형 웹이 자동으로 지원된다!
다만 양산형 디자인이 될 수 있으며 최적화된 디자인에 비해 성능이 떨어질 수 있다
CDN을 통해 부트스트랩의 디자인 요소와 템플릿을 가져와보자
이제 부트스트랩 Docs의 모든 요소를 사용(복붙)할 수 있다!
요소 하나하나 말고 웹페이지 디자인 전체를 적용하려면 Examples 탭에서,,
본 내용은 멋쟁이사자처럼의 '9기 운영진 교육'을 바탕으로 작성되었습니다.
'Back-end > Django' 카테고리의 다른 글
[HUFS/HUFStudy] #6 Form (4) | 2021.07.30 |
---|---|
[HUFS/HUFStudy] #5 로그인/회원가입, Pagination (8) | 2021.07.28 |
[HUFS/HUFStudy] #4 Path Converter, 글쓰기, Static/Media, 템플릿 상속, URL (2) | 2021.07.18 |
[HUFS/HUFStudy] #2 Word Counter 만들기 (0) | 2021.07.03 |
[HUFS/HUFStudy] #1 기본 환경 세팅 (0) | 2021.06.29 |