티스토리 뷰
무쓸모톤이 이렇게 종료되었고 나는 이 서비스를 그냥 깃허브에 썩히기 아까워서 배포를 하기로 마음 먹었다. 생애 첫 배포라서 잘 할 수 있을지 떨렸고 멋쟁이 사자처럼 세션 중 배포는 거의 기도메타(?) 라고 해서 오류와 싸울 생각에 머리가 벌써 아찔했다. 하지만 우리 귀요미 찐품명품을 세상에 알리기 위해서 배포를 시작했다.
배포가 뭔가요?
장고는 실행 시 각자 다른 DB를 만들어야한다. 왜냐면 내가 만든 DB는 공유되지 않아서 보이지 않기 때문이다. 하지만 배포를 통해 실제 서비스를 시작하게 된다면 어떤 사람이든지 특정 도메인을 통해 사이트를 들어올 수 있고 같은 DB를 볼 수 도 있다. 그렇기 때문에 DB를 사용하는 장고라면 더욱 더 배포가 절실했다.
배포를 해봅시다
배포를 하기 전 먼저 pythonanywhere에 가입을 해야한다.

먼저 가입을 하게 되면 다음과 같은 화면으로 들어가진다.
이후는 내가 참고한 블로그를 보면 된다. 나보다 훨씬 설명을 잘 써주셨고 나보다 이해하기 쉽게 적어주셨다 ㅎㅎ
https://m.blog.naver.com/pjok1122/221607377401
[Python / Django] pythonanywhere 배포하기(웹 호스팅)
1. 배포를 위한 설정 Setting.py에서 다음을 수정하셔야 합니다. (1) DEBUG 처음에는 DEBUG &#x...
blog.naver.com
그럼 난 날로 먹느냐..
난 이번에 배포를 처음하면서 생긴 오류를 집중적으로 파악해서 해결법을 빠르게 정리해보겠다.
1. 대표적인 오류인 Unhandled Exception

이 오류는 저기 보이는 error.log를 봐야 한다. 나는 처음에 Error code 만 보고 문제를 해결하려 했으나 진짜 문제는 저 아래 error.log에 존재한다는 것을 알았다. 대부분의 오류는 철자나 문법 문제이거나 탭 키의 문제이다. 내 경우에는 블로그를 참고하여 복붙으로 코드를 작성했는데 이 때 복붙을 하면 탭 하나당 스페이스바의 개수가 실제 코딩과 다르게 카운트가 되어 적용된다는 점이다. 그래서 하나하나 다시 쳐본 결과 해결되었다.
2. 이미지가 뜨지 않는 오류

이 오류는 다른 이미지나 정보는 잘 표시되지만 특정 모델 속 이미지만 표시되지 않는 오류이다.
오류의 원인은 models.py에서 속성을 보면 알 수 있었는데 우리가 이미지를 올렸을 때 서버에 올려야하지만 현재는 다른 곳에 올라가게끔 적혀있다. 배포용으로 수정 시 바뀌지 못한 부분이었다.

그래서 image에서 upload_to 속성을 삭제하고 phythonanywhere 에서 media 파일 주소를 지정해줬다.

3. DB나 모델 삭제 시 Server Error (500) 오류
이 오류는 시험 삼아 올렸던 데이터들을 삭제하고 다시 제대로 된 데이터를 올리려다가 발생했다. 대부분은 다 잘 삭제가 되었지만 특정 데이터들만 이런 오류가 떴다.

조사를 해보니 내가 settings.py에서 ALLOWED_HOSTS를 hyun1011.pythonanywhere.com 만 등록해놨다. 그래서 다른 요청을 하게되면 서버의 오류로 작동을 안하는 것이었다. 내 경우에는 ALLOWED_HOSTS='*'를 해주니 바로 해결되었다.
4. Foreign Key constraint failed 오류
잘 해결하다가 삭제 시 잘 알지 못하지만 외래키 오류같은 것이 떴다.

다른 기능은 잘 작동하나 유독 삭제 부분만 오류가 많았다. 이 오류도 왜 생기는지 조사를 해봤는데 내가 아까 모델 수정 후 createsuperuser 를 했는데 그 때 이미 존재하던 Custom User Model(내가 임의로 만든 유저 모델)과 충돌을 일으켰다고 한다. 상속 문제로 충돌을 일으키기 때문에 실행이 되지 않는 것이라 했다. 따라서 다음과 같은 방법으로 해결했다.
- db.sqlite3 파일 삭제
- Custom User Model 을 구현한 app 의 migrations 폴더 중 001.~~ 파일 삭제
- python manage.py makemigrations
- python manage.py migrate
이렇게 5가지의 난관을 헤쳐서 결국 배포를 해냈다..!!!!!!
진짜진짜 프로젝트 마무리
만약 이 블로그를 보신 행운아분들이 계시다면 페이지에 들어가서 게시글 하나만 부탁드릴게요 ㅎㅎ
찐품명품 주소 : https://hyun1011.pythonanywhere.com/
'프로젝트' 카테고리의 다른 글
[DB] 멋쟁이사자처럼 9기 백엔드 스터디 (2) - DataBase 모델링이란? (0) | 2021.08.17 |
---|---|
[DB] 멋쟁이사자처럼 9기 백엔드 스터디 (1) - Database란 무엇인가? (10) | 2021.08.11 |
[Django] 무쓸모톤 - 찐품명품(3) 프로젝트 완료!! (0) | 2021.07.31 |
[Android] K-HACKATHON (1) 예선 합격과 본선 준비 (0) | 2021.07.30 |
[JQuery] 선택자 함수에서의 변수 (0) | 2021.07.26 |
- Total
- Today
- Yesterday