반응형

Django 15

[django] ImageField Form 이미지 업로드하기.

django Form에서 이미지를 업로드해서 DB에 저장하는 기능을 구현하는 방법이다. 이미지 파일이 form에서 view로 넘어가지도 않는 문제, view에서 조회하는 문제들을 해결하였다. 1. media폴더 경로 설정 프로젝트 폴더 settings.py 마지막줄에 MEDIA_URL, MEDIA_ROOT 추가 # setting.py # ... 이외의 기본 세팅들 MEDIA_ROOT = BASE_DIR/'media' MEDIA_URL = '/media/' 프로젝트 폴더 urls.py에 urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 추가 # urls.py from django.contrib import admin f..

[django] 프로젝트 배포 시 sqlite3 버전 오류

django프로젝트를 만든 후 aws나 gcp에 배포하려고 할 때 sqlite3의 버전 오류가 나는 경우가 많다. 이때 linux기반 OS에서 sqlite3를 쉽게 설치하는 방법이다. linux기반 지식이나 명령어들을 잘 몰라서 많이 해맸는데 아래의 명령어로 쉽게 해결할 수 있었다. 오류 내용 : django.core.exceptions.ImproperlyConfigured: SQLite 3.9.0 or later is required (found 3.7.17). sqlite3.9버전 이상을 설치해주어야 한다. koipkgs에 sqlite3 버전 별 설치파일들이 있고 이 파일들을 찾아서 다운로드 후 설치해주면 된다. 명령어 wget https://kojipkgs.fedoraproject.org//pack..

[django] django.db.utils.OperationalError: table already exist

에러 : table already exist 장고 migration시 table already exist 에러를 해결하는 과정에 대한 블로그입니다. 원인 아래와 같이 같은 이름의 테이블이 이미 존재하기 때문에 python manage.py migrate 할 수 없다는 에러메세지였다. 이 문제를 해결하려면 이미 존재하고 있는 테이블을 지우거나 수정해야 한다. 해결 python manage.py migrate --fake 을 입력하여 테이블이 없는 것으로 간주하고 새로 테이블을 만드는 명령어를 사용하면 됨.

[django] no such table: auth_user

python manage.py createsuperuser로 아이디와 패스워드를 만들려고 하는데 이런 오류가 뜬다. 구글링을 통해 찾아보니 말 그대로 DB에 테이블이 없어서 나타나는 문제점이라고 한다. 1. python manage.py makemigrations 2. python manage.py migrate 이 두가지 명령어를 순서대로 실행시켜서 migrate를 해주고 나서 다시 createsuperuser하면 된다. 장고 프로젝트를 새로 시작했을 때 기본적으로 세팅이 되어있는 모델들이 있는데 이 모델들도 맨 처음에는 migration을 해주어야한다. python manage.py makemigrations명령어는 모델에 변화가 있거나 모델을 새로 생성했을 경우 변경사항을 업데이트해주는 명령어다. ..

[django] 명령어 정리

django 명령어 정리 장고는 기본적으로 아래의 장고어드민(django-admin)이라는 명령어를 통해서 프로젝트와 앱을 실행시킬 수 있다. 프로젝트 생성 django-admin startproject [프로젝트 이름] 앱 생성 django-admin startapp [앱 이름] 서버시작 python manage.py runserver [포트번호] 장고로 프로젝트를 시작하면 manage.py라는 파일이 자동으로 생성되는데 이 파일이 있는 디렉토리에서 runserver와 포트번호를 붙여서 실행시키면 로컬 서버에서 장고프로젝트를 실행시킬 수 있게 된다! 아니 벌써 장고라는 틀을 가지고 일단 웹을 하나 찍어만들어보긴 한 셈이다. 짝짝짝!!! 이 외에도 django-admin을 치면 사용할 수 있는 명령어들이..