이미지 파일 업로드
- 이전 토픽에서 CKEditor를 적용시켜보았습니다.
이는 글자를 편집할 수 있는 데에 있어 편한 툴입니다.
하지만 몇가지 테스트를 해보면 알 수 있듯이 이미지 파일을 업로드할 수는 없습니다.
- 이미지 파일 업로드 기능을 구현하기 위해 몇가지 추가적으로 설정을 추가해주도록 하겠습니다.
1 2 | [firstProject] - [settings.py]에서 [INSTALLED_APPS]에 다음을 추가합니다. 'ckeditor_uploader' , |
1 2 | 업로드 파일의 경로를 지정해주기 위해 다음을 추가합니다. CKEDITOR_UPLOAD_PATH = "uploads/" |
1 2 3 | [settings.py] 맨 아래에 다음 2 줄을 추가해 줍니다. MEDIA_URL = '/media/' MEDIA_ROOT = 'media/' |
- 지금까지 정적 파일들은 'static' 루트에 모아두었습니다.
- 마찬가지로 사용자들이 올리는 파일들은 'media'로 분류가 되며, 'media' 루트를 설정해주는 것입니다.
- 위에서 'CKEDITOR_UPLOAD_PATH'를 설정해주었는데, 이는 'media' 루트 디렉토리의 하위 디렉토리로 위치하게 됩니다.
1 2 3 4 | [firstProject] - [urls.py]에서 url을 추가해주도록 합니다. from django.conf.urls import include path( 'ckeditor/' , include( 'ckeditor_uploader.urls' )), |
- 이는 'ckeditor_uploader'가 url을 참조할 수 있도록 설정하는 부분입니다.
1 2 3 4 5 | 마지막으로 MEDIA 경로를 참조하기 위해 다음을 추가하도록 합니다. from django.conf import settings from django.conf.urls.static import static urlpatterns + = static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT) |
1 2 3 4 | [models.py]에서 파일 업로드 필드로 적용시키기 위해 다음과 같이 수정합니다. from ckeditor_uploader.fields import RichTextUploadingField body = RichTextUploadingField() |
1 2 3 | [Tools]-[Run manage.py Task]를 켜고 모델을 적용시키도록 합니다. makemigrations migrate |
적용 확인
- 서버를 구동하고 admin 페이지에 접속하여 블로그를 생성해보도록 합니다.
- 빨간색 버튼을 눌러서 이미지를 업로딩해보도록 하겠습니다.
1 | [Upload] 버튼을 누르고 파일을 선택한 뒤 [Send it to the Server]를 누르고 [OK]합니다. |
- 다음과 같이 이미지를 수정할 수 있는 창이 뜹니다.
- 적용된 모습입니다.
- 저장을 하고 PyCharm으로 돌아와서 어떻게 저장되었는지 확인해봅시다.
- 우리가 설정한 경로 'media/uploads'에 CKEditor가 알아서 날짜를 디렉토리로 생성하고 이미지 파일이 생성된 것을 볼 수 있습니다.