본문 바로가기
Django/Django note

[Django note] #1 내가 보려고 만드는 장고 노트(static과 media)

by clean01 2020. 7. 14.

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%}