static
1. 앱 폴더 안에 static 폴더 만들기
2. settings.py에 static파일이 지금 어디에 있는지, 어디로 모을지 알려주기
#settings.py
STATICFILES=[
os.path.join(BASE_DIR, '앱 이름', 'static')
] #현재 static파일들이 어디에 있는지
STATIC_ROOT=os.path.join(BASE_DIR, 'static')
#static 파일을 어디로 모을지
3. static파일들을 모아주기
명령어: python manage.py collectstatic
4. html문서에서 static 파일 사용하기
맨 위에 {%load static%} 써주기
<img src="{%static '~~~.jpg%}">
#궁금한거 : 템플릿 태그, 템플릿 변수 차이점...
Media
*pip 패키지 pillow 반드시 설치
1. settings.py안에 media파일들을 어디로 모을지, 어떤 url통해 받을지 써주기
#settings.py
MEDIA_ROOT=os.path.join(BASE_DIR, 'media') #어디로 모을지
MEDIA_URL='/media/' #url
2. models.py에서 데이터 class 정의
#미디어 앱 안의 views.py (class 예시)
class media(models.Model):
title=models.CharField(max_length=50)
description=models.CharField(max_length=250)
image=models.ImageField(upload_to='/images/') #잘 이해 안가는 부분...
pub_date=models.DateTimeField('date published')
3. migrate
명령어:
python manage.py makemigrations
python manage.py migrate
4. views.py에 함수 정의
#views.py
from .models import Media
def media(request):
data=Media.objects #data라는 변수에 Media객체 담아주기
return render(request, 'media.html', {'data':data}
5. urls.py에서 path 추가
#urls.py
import media.views
form django.conf import settings
form django.conf.urls.static import static
urlpatterns=[
...
] +static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
4. admin.py에 등록
위에 from .models import Media 하고,
admin.site.register(Media)
5. html문서에서 media파일 보이게하기
{%for img in img.all%}
<h2>{{img.title}}</h2>
<img src="{{img.image.url}}">
<p>{{img.description}}</p>
{%endfor%}
'Django > Django note' 카테고리의 다른 글
[Django note] #5 내가 보려고 만드는 장고 노트(썸네일 구현) (0) | 2020.07.22 |
---|---|
[Django note] #4 내가 보려고 만드는 장고 노트(소셜 로그인 구현) (0) | 2020.07.20 |
[Django note] #3 내가 보려고 만드는 장고 노트 - update 함수, 수정 기능 (전 내용이 보이게 하기) (0) | 2020.07.17 |
[Django note] #2 내가 보려고 만드는 장고 노트 (템플릿 상속, url 계층적 관리) (0) | 2020.07.16 |