2021-03-18
* DJANGO
Django STATIC/MEDIA (CSS 주기 / 그림, 영상, 파일 DB만들고 보여주기 )
- STATIC : 앱별 CSS 적용
※ 하기전에 협업을 위한 venv 복습!
이번엔 남의 프로젝트를 가져온 뒤에 작업을 해보자 (requirements.txt)
$ python -m venv venv : 가상환경 설치 $ source venv/Scripts/activate : 가상환경 실행 $ pip install -r requirements.txt
아래 코드를 추가해 준다.
STATIC_ROOT = BASE_DIR / 'static' : settings.py에 작성해서 사용 static 위치{% load static %} <link rel="stylesheet" href="{% static 'base.css' %}">
이렇게 가져다가 사용한다.
python mange.py colloectstatic : static이란 폴더에 css가 다 넣어진다. (나중에 배포용에 사용됌)
- MEDIA : 파일을 DB에 저장, Detail에 표현되게 하기
models.py에서 image 추가 (DB 항목 추가)
image = models.ImageField(blank=True) # blank=True : is_valid()시, 빈칸이어도 허용 # null=False : '' 빈 문자열이 들어간다. # default='안녕' : 고정값 지정
pip install Pillow
create.html에서 form 태그 안에 enctype = "multipart/form-data" 추가 (파일 선택하여 create 할때.)
views.py에서 form = ArticleForm(data=request.POST, files=request.FILES)
setting.py에서
# 사용자가 업로드한 파일을 모아 놓을 경로 MEDIA_ROOT = BASE_DIR / 'media' #폴더 이름에 맞게 MEDIA_URL = '/media/' #url 자체를 만드는 것. 추적하기 위해서?
crud/urls.py에서
"#"표시한 부분 추가... 안외워지지만 계속 보자 익숙해지게from django.contrib import admin from django.urls import path, include from django.conf import settings ###################### from django.conf.urls.static import static############# urlpatterns = [ path('admin/', admin.site.urls), path('articles/', include('articles.urls')), ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)###########
detail.html에서 img 추가
image가 있으면 보이도록, if문 추가해서 설정할 수 있다.
article.image.url 자체가 /media/이미지파일 이름 으로 찾아가서 가져오는 것.{% if article.image %} <img src="{{ article.image.url }}" alt="{{ article.image }}" width="100"> {% endif %}
※ 이번주 해야할 일
: 블로그 2회 업로드 (완료). 알고리즘 문제 1개 풀기 (완료)
※ 한줄 하루 마무리
: 솔직히 잘 모르겟다.. 외우질 못하겟어.. 흐름만 이해햇다.
'코딩일기정리' 카테고리의 다른 글
[정보처리기사]후기 (0) | 2021.07.12 |
---|---|
[SSAFY] 5기_1학기후기 (시작과 끝) (6) | 2021.05.28 |
[21.03.23]Django_사용자기능추가(USER, LOGIN, SIGNUP 등) (0) | 2021.03.23 |
[21.03.10]Django_Model(ORM, DB API, CRUD 기본) (0) | 2021.03.23 |
[21.03.08]Django_기본개념(MTV, 명령어, 구조) (0) | 2021.03.23 |