반응형

Django 13

Django 이미지 업로드 및 출력하기

1. 파일 저장 및 전달 admin에서 파일을 업로드하면 저장 될 패스를 지정합니다. 지정된 위의 경로로 파일이 저장됩니다. url에도 추가해줍니다. 2. Model 및 Admin 설정 model.py class AwardImageUpload(models.Model): title = models.CharField(max_length=30, null=True) image = models.ImageField(upload_to='about_me/awards/%Y/%m/%d', blank=True) created_at = models.DateTimeField(null=True, blank=True) updated_at = models.DateTimeField(auto_now=True, null=True, bla..

Python/Django 2022.07.29

Django kakaotalk 로그인 api 적용하기

애플리케이션 추가 1. 애플리케이션 추가 선택 kakao developers에 로그인한 후 애플리케이션을 추가합니다. 2. 애플리케이션 정보 입력 각각의 정보를 입력하고 저장합니다. 3. 애플리케이션 추가 확인 추가가 완료된 것을 확인할 수 있습니다. 4. 애플리케이션 앱키 확인 해당 애플리케이션의 요약정보에 들어가면 자동으로 앱 키들이 생성된 것을 확인할 수 있습니다. 앱 키는 각 용도에 맞게 사용하면 됩니다. 여기서는 REST API 키를 사용합니다. 5. 플랫폼 등록 이후 플랫폼 설정하기에 들어가서 플랫폼을 등록해줍니다. 사이트 도메인을 입력해줍니다. 지금은 로컬에서 개발중이니 로컬 주소를 입력해줍니다. 6. 카카오 로그인 활성화 해당 API를 활성화 하기 위해 카카오 로그인에서 활성화 설정 상태를..

Python/Django 2022.07.28

Django Admin 파일 업로드 구현하기

싱글 페이지에 들어갈 파일을 Admin에서 업로드할 수 있도록 구현해보겠습니다. from django.db import models from django.contrib.auth.models import User # Create your models here. class FileUpload(models.Model): title = models.CharField(max_length=30, null=True) file_upload = models.FileField(upload_to='about_me/files/%Y/%m/%d', blank=True) author = models.ForeignKey(User, null=True, on_delete=models.SET_NULL) create_date = model..

Python/Django 2022.07.15

Docker 실행 시 이미지 안 뜨는 문제

로컬에서 실행 시 잘 뜨던 이미지가 Docker 배포 실행 시 뜨지 않는 경우가 있습니다. 단순히 이미지를 찾지 못해서 입니다. 로컬 폴더에는 있지만 배포 폴더에는 없기 때문입니다. $ python manage.py collectstatic 배포를 위해 static 폴더에 코드와 리소스들을 복사합니다. 파일들이 덮어씌워진다고 합니다. yes를 입력하면 3개의 파일이 복사되었다고 하네요. 이미지가 잘 들어간 것을 확인할 수 있습니다. $ docker-compose down -v $ docker-compose up -d --build $ docker-compose exec web python manage.py makemigrations $ docker-compose exec web python manage...

Python/Django 2022.07.14

Django 로그인 시 CSRF 에러(CSRF verification failed. Request aborted)

Lightsail을 이용한 aws 서버에서 docker 실행 시 위와 같은 에러가 발생했습니다. CSRF와 관련된 에러로 보여집니다. Help 메세지를 확인해보니 CsrfViewMiddleware를 사용하지 않으면 모든 views에 csrf_protect를 사용해야 한다고 나와있습니다. 해결 방법은 간단했습니다. https가 적용되면 csrf를 신뢰할 수 있도록 url을 추가해야 합니다. Django 버전 4.0이상은 scheme(https://)와 hostname 버전 3.2이하는 hostname만 추가하면 됩니다. docker를 다시 빌드 실행하고 migrate한 후 접속하면 잘 되는 것을 확인할 수 있습니다. https://stackoverflow.com/questions/38841109/csrf-..

Python/Django 2022.07.12

docker 실행 시 nginx 에러

$ sudo docker-compose up -d --build 도커 실행 시 nginx가 실행되지 않는 현상이 발생됩니다. $ nano init-letsencrypt.sh init-letsencrypt.sh 파일에 들어가서 확인해보니 도메인을 발급받은 이메일이 잘못 적혀있었습니다. 그리고 테스트 할 때 staging은 1로 해주어야 합니다. 0으로 하고 5회이상 실행하면 다시 인증 받는데 1주일 이상이 소요된다고 합니다. $ sudo docker-compose down $ sudo chmod +x init-letsencrypt.sh $ sudo ./init-letsencrypt.sh 파일을 수정한 후에 도커를 종료하고 인증서를 적용합니다. $ sudo docker-compose up -d --build..

Python/Django 2022.07.12

Django Lightsail(Ubuntu)로 서비스하기

1. 아마존 웹 서비스로 프로젝트 옮기기 Linux 계열의 Ubuntu를 설치하겠습니다. 인스턴스 스펙을 설정합니다. 저는 제일 작은걸로 인스턴스를 생성하고 조금 기다렸다가 생성하면 실행(Running)됩니다. 우측 상단에 콘솔을 클릭합니다. 'github'라는 폴더를 생성하고 복사한 github URL을 입력합니다. 해당 깃의 username과 password를 입력하라고 하는데 비밀번호 말고 토큰으로 입력하라는 것 같습니다. 토큰을 생성해봅시다. 깃 우측 상단 setting에 들어가면 Developer settins라고 있습니다. 토큰 생성 버튼을 클릭합니다. Note는 토큰 설명 Expiration은 토큰의 유효 기간을 의미하고 Select scopes에서 용도에 맞는 권한들을 지정해줍니다. 설정을..

Python/Django 2022.07.07

Django PostgreSQL 사용하기

PostgreSQL 사용 설정하기 1. web 컨테이너는 db 컨테이너가 실행된 이후에 시작해야 한다는 의미로 depends_on을 db로 설정합니다. 2. 도커에서 공식으로 제공하는 postgres:12.0-alpine을 사용합니다. 3. volumes를 설정해서 컨테이너 실행이 중단되더라도 데이터베이스의 내용이 사라지지 않도록 합니다. 4. 사용자명, 암호, 데이터베이스명을 지정합니다. postgreSQL을 사용하도록 설정을 변경합니다. settings.py에서 활용할 수 있도록 .env.dev 파일을 수정합니다. psycopg2 모듈을 설치하고 도커 실행을 위해 모듈을 추가해줍니다. 현재 도커가 실행 중이니 새 터미널을 열어 마이그레이션을 진행합니다. 마이그레이션이 완료되면 웹 사이트는 잘 나오지만..

Python/Django 2022.07.05

도커(Docker)로 배포하기

도커란? 다른 하드웨어와 운영체제에서 작업하더라도 동일한 환경을 갖출 수 있도록 도와주는 기술입니다. 즉, 개발과 배포 환경이 달라도 따로 환경설정 과정을 거치지 않고 실행이 가능하게 합니다. 1. 도커 설치하기 작업 관리자를 열어 가상화 여부를 확인합니다. 도커 홈페이지(docker.com)에 접속하여 윈도우용 Docker Desktop을 설치합니다. 위와 같이 에러가 뜰 경우 해당 페이지의 공식 메뉴얼을 참고하여 커널을 업데이트 합니다. docker의 버전이 어떤 경로에서든 동일하게 나오면 성공입니다! 2. 도커 파일 만들기 모듈 리스트 만들기 현재 여러 라이브러리들이 가상환경(venv)에 설치되어 있습니다. 이것들을 도커 컨테이너로 옮겨야 합니다. 'pip freeze > requirments.tx..

Python/Django 2022.07.04

Django 검색 기능 구현

1. 검색 기능 JavaScript 추가 검색창에 Enter 또는 Go! 버튼 클릭 시 기능이 작동하도록 JavaScript를 추가합니다. 검색 값을 가져오기 위해 input 박스에 id를 지정하고 버튼에 onclick 함수를 부여합니다. 검색 버튼에서 지정했던 searchPost 함수를 구현합니다. search-input을 id로 가지는 input 박스의 값을 가져와서 length로 길이가 1 이상인지 판단합니다. 한글자 이하면 짧다는 알럿을 띄웁니다. 검색창에서 엔터키를 눌렀을 때 위에서 구현한 searchPost 함수를 실행하도록 구현했습니다. jquery를 사용했기 때문에 위의 코드를 추가합니다. 2. 검색을 위한 백엔드 작업 views의 PostSearch로 가도록 url을 설정해줍니다. 1. ..

Python/Django 2022.06.30
반응형