간만에 필 받아서 열공한 내용 중에서 문제가 있었던 부분에 대한 메모
처음 Python과 Django를 알게 된 이후 언젠가는 도전해 보고 싶었었는데, 블로그를 만들고 최종적으로 Heroku에 공개까지 해보는 Django Girls Tutorial을 따라 해봤다.
문제 1. 업그레이드
처음 시작은 일본쪽 튜토리얼을 보고 시작했었는데 잘 나가다가 배포 하는 과정에서 막히기 시작하면서 시간을 꽤 잡아 먹었었다. (참고로 한국어 튜토리얼은 이쪽에서.)
git push heroku master
로컬에서의 작업을 마무리하고 배포를 위한 과정을 위해 명령어를 실행하자 문제가 발생했다.
...
...
remote: Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-e7m3xfsy/psycopg2/
...
...
뭔가 에러가 나와버린것. 최종 원인은 psycopg2를 업그레이드할 필요가 있었다.
#실패
pip upgrade psycopg2
#성공
pip install --upgrade psycopg2
처음에는 성공하지 못했었다. 이걸또 검색에 검색에 검색을 거쳐...install --upgrade
명령어로 업그레이드에 성공. 이런식의 같아보이는듯 다른 명령어 때문에 얼마나 고생을 한건지...ㅜ_ㅜ
pip freeze
로 버전상태를 확인하고
pip freeze > requirements.txt
requirements.txt 를 업데이트 시킨후 다시 push를 하니 제대로 배포가 되었다. 만세! Stack Overflow를 시작해서 한국, 일본사이트를 이리저리 뒤지다 성공했다. 인터넷 만만세!
결국, 이 문제는 일본쪽 튜토리얼에서 사용되는 psycopg2이 하위 버전을 기준으로 진행되었기 때문이었다.
#일본
psycopg2==2.5.4
#미국, 한국
psycopg2==2.6.2
우여곡절 끝에 난생 처음 Django로 나만의 블로그를 만들어서 온라인에 오픈시키는데 성공하였고 현재의 전체적인 기능은 아래와 같다.
- 글의 작성/수정/삭제
- 글 작성시 배포전의 상태에서 확인가능
- 배포전의 상태 리스트표시
- 로그인/로그아웃
문제 2. 이미지 표시
튜토리얼에는 이미지 표시에 대한 튜토리얼이 없었다. <img>
나 <b>
등 일반적인 html의 tag를 사용할 경우, 그대로 렌더링 되는 escape의 문제가 있어서 또다시 검색.
<b>Sample</b>
<img src="https://docs.djangoproject.com/s/img/small-fundraising-heart.d255f6e934e5.png">
Heroku의 무료 버전의 경우, 일정시간이 지나면 등록된 이미지를 리셋시켜버리는 것 같았다. 무료로 사용하는 Heroku이고, 나같은 경우 기본적으로 이미지는 따로 Flickr 등으로 관리하고 있기 때문에 이미지를 Heroku에 올릴 필요가 없어 escape문제만 해결된다면 내가 원하는 (현시점의)기능은 구현될 것 같아 폭풍검색.
{% autoescape off %}
...
{% endautoescape %}
autoescape 를 적용하니 한방에 해결되었다.
Sample
Python, Django의 경우 국내의 (무료)호스팅 서비스를 찾는것이 쉽지 않았다. 아직 AWS를 이용해 볼 정도까지는 아니기에 정착한 곳이 Heroku 였었고, 다행히 일본쪽의 튜토리얼이 Python - Django - Heroku 를 기준으로 이루어져 있어 수월하게(?) 진행할 수 있었던 것 같다.
이번 튜토리얼을 따라하는 과정에서 미국, 일본, 한국쪽을 다 둘러보게 된 후 알게 된것은 같은 Django를 다루는 내용이지만, 온라인 배포 과정에서 미국, 한국은 PythonAnywhere를 배포처로 활용하고 있었지만, 일본만 Heroku 를 사용하고 있었다. 한국의 경우, 본가의 내용을 충실히 번역하는 것에 초점이 맞추어져 있다면 일본쪽은 배포과정에서 PythonAnywhere부분을 Heroku로 바꾸어 두었던것 같다.
'program' 카테고리의 다른 글
설마 이런식으로 vue를 시작할 줄이야. (0) | 2018.08.14 |
---|---|
gitbook + gitlab + Firebase (0) | 2018.07.04 |
Git의 그래프 UI가 맘에 드는 GitKraken (0) | 2018.05.04 |
RWD의 메뉴를 지원하는 스크립트 - menu-breaker.js (0) | 2018.04.24 |
페이지에 인스타그램의 사진을 간지나게 보여주는 플러그인 - masongram (0) | 2018.04.22 |
댓글