<요약>
- 파일을 보여주는 portfolio app 만들기
- 장고에서 다룰 수 있는 파일에 종류 설명
- 만든 App에서 static 파일을 다뤄보기
<배운것들>
- 정적파일과 동적파일 (static, dynamic)
- 정적파일의 종류 (static, media)
- 정적파일인 static 파일 다루기
Static파일이란 웹 사이트 구성요소 중 Image, CSS, Script파일과 같이 그 내용이 고정되어 응답을 할 때 별도의 처리 없이 파일 내용을 그대로 보내주면 되는 파일을 의미합니다
일단 Static파일을 다루기 위해 portfolio라는 이름의 앱을 새로 만들고 설명하겠습니다.
1. App 새로 만들기
1.준비된 이미지 파일을 올리는 App을 만들어보자 . App이름은 portfolio.
python manage.py startapp portfolio
2. app 을 만들었으니 django프로젝트에서 App을 만들었다는 것을 알려줘야한다. s
2. Templates 만들기
static 파일을 보여주기 위해 portfolio 앱에서 Templates 폴더를 만들어주자. 이후 portfolio.html 이라는 파일을 만들어준다.
3. view 만들기
portfolio 앱안에 view.py를 엽니다. portfolio.html 을 열어주는 함수를 만들어 줍니다.
from django.shortcuts import render
from .models import Portfolio
# Create your views here.
def portfolio(request):
portfolios = Portfolio.objects
return render(request, 'portfolio.html', {'portfolios' : portfolios})
4. url 수정하기
url을 만들고 실행해봅니다.
path('portfolio/', portfolio.views.portfolio, name='portfolio'),
장고를 실행시키고, url에 접속해보면 ,
2. django에서 다루는 파일의 종류
Django에서 다루는 파일의 종류는 두가지가 있다.
1. Static File (정적 파일) : 미리 서버에 저장되어 있는 파일
-서버에 저장한 파일을 그대로를 서비스하는 파일
2. Dynamic File (동적 파일) : 서버의 데이터가 가공되고 나서 보여주는 파일
- 언제, 어디서, 누가, 어떻게 요청하나에 따라 보여지는게 다를 수 있는 파일
근데 정적파일은 두가지의 종류가 있다.
1. 프로젝트 입장에서 뭔지 아는파일
- 개발할 때 미리 준비해둔 파일 " static"
2 웹서비스 이용자들이 업로드 하는 파일 "media"
우리는 정적파일 중에서 static 파일을 다뤄 보도록 하자 .
3. 만든 App에서 static 파일을 다뤄보기
< 알아두기 >
Django가 static 파일을 처리하는 과정은 다음과 같다.
1. Static 파일의 위치찾기
2. Static 파일을 한곳에 모으기
우리는 static파일인 이미지파일을 portfolio.html에 첨부해 보자.
static 파일을 처리하는 방법은 다음과 같다.
- Static 파일들을 담을 폴더 만들기
- (App폴더 내부에) Static 폴더 생성 및 파일 저장
- Static 파일의 위치 알려주기
- settings.py에서 알려주기
- Static 파일을 모으기
- $ python manage.py collectstatic (명령어)
1 . Static 파일들을 담을 폴더 만들기
2. Static 파일의 위치 알려주기
- settings.py에서 맨밑에 다음과 같이 적는다.
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'portfolio', 'static')
]
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATICFILES_DIRS은 static파일이 어디 있는지 알려주는 변수
STATIC_ROOT은 static파일들이 어디로 모일 것인지 알려주는 변수
3. Static 파일을 모으기
터미널에 다음 명령어를 입력하자.
python manage.py collectstatic
portfolio App의 static 폴더에 첨부할 이미지 파일을 넣는다 .
그리고 portfolio.html에서 최상단에 다음 코드를 추가한다.
{% load staticfiles %}
static 폴더안에 이미지파일을 첨부하기 위해 다음과 같이 <img> 태그에 경로를 적는다.
<a href="#"><img class="card-img-top" src="{% static 'first_logo.png' %}" alt=""></a>
'Django > Django Blog' 카테고리의 다른 글
5. Django 블로그 만들기 ( 템플릿 상속, url 관리) (0) | 2019.12.10 |
---|---|
4-2. Django 블로그 만들기 (media 정적파일) (1) | 2019.12.10 |
3.Django 블로그만들기 ( detail 페이지) (1) | 2019.12.02 |
2.Django 블로그 만들기 ( rediract) (1) | 2019.11.30 |
1.Django로 블로그 만들기 (0) | 2019.11.28 |