일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Django
- Django 특정 값 가져오기
- html cell size
- Spring
- html cell
- table tag
- Dependency Injection
- html
- table cell size
- Django column 값 가져오기
- Dependency
- DI
- Today
- Total
emluy 개발 일기
Django 웹 12 - (portfolio) Media 파일 업로드 본문
* Static vs Media
- Static: 외부와 통신 x
- Media: 외부와 통신 o (url로 통신)
setting 11에 이어서
- 프로젝트 폴더 : blogproject
- 앱폴더 : blogapp, portfolio
1. settings.py에 media 설정(directory, url설정)
#blogproject 의 settings.py
- MEDIA_ROOT = os,path.join(BASE_DIR,'media') : 최상위 directory의 media 폴더에 파일들 모을 것임
- MEDIA_URL = '/media/' : ex)'기본홈페이지url/media/파일내용' ->이런식으로 url에 나타날것임
2. urls.py 설정
: 다음과 같이 코드 추가
#blogproject의 urls.py
3. models.py 에서 업로드 될 데이터 (이미지, 워드파일 등등 ) class 정의
:url을 타고 들어온 파일을 저장해줌
#portfolio 앱 폴더의 models.py
- title : 이미지 제목 저장
- image : 업로드 되는 이미지를 저장, 어디에? upload_to = 'images/'에 (media 폴더 하위에 있는 images 폴더)
- description : 이미지 설명 저장
4. DB에 반영 (migrate)
* 그전에! 이미지를 DB에 저장하기 위해서는 pillow 설치 필요 (파이썬으로 이미지 다루기 위한 library)
- $python manage.py makemigrations
- $python manage.py migrate
5. admin.py에 Class를 register 해줌
#portfolio 앱 폴더의 admin.py
6. views.py에 모든 객체 내용 보주는 함수 정의
#portfolio 앱 폴더의 views.py
7. html에 띄우기
밑의 portfolio.html에서 그림 띄우는 부분에 해당하는 코드 수정할 것임
#setting 11 게시물의 결과
** 수정할 부분 : 이미지 나오는 부분 <div class = "col-md-4">
#portfolio.html
**수정 후
- 1번째 네모, 3번째 네모 : views.py 함수에 있는 portfolios 를 가져와서 for문으로 띄움
- 2번째 네모. : 이미지 어디서 가져오는지 알려주는 src에 {[portfolio.image.url]} -> portfolio 객체에 저장된 image를 url통해서 가져옴
결과
#portfolio.html
'웹 개발 > Django' 카테고리의 다른 글
Django 웹 9 추가 - url 효율적인 관리 <include> (0) | 2020.05.12 |
---|---|
Django 웹 11 추가사항 - (blog) 템플릿 상속 (0) | 2020.05.11 |
Django 웹 11 - (portfolio) Static 파일 이미지 업로드 (0) | 2020.05.07 |
Django 웹 10 - (blog) 홈페이지에서 데이터 입력 받고 admin에 바로 저장되게 하기 (0) | 2020.05.07 |
Django 웹 기본 setting - bootstrap 연결하기 (0) | 2020.05.04 |