자바가 슬슬 머리 아플때쯤.. 새로운 웹 프레임 워크를 가지고 놀기 위해.. 장고(Django)에 삽을 들어보았습니다. 장고를 익히기 위해 무작정 유튜브에서 튜토리얼을 검색해보니 참고할만한 슬라이드가 있어서 정말 무작성 따라하기 시작..
따라가는데 큰 무리는 없었찌만 대략 2년전에 발표된 자료라서 조금씩 변경딘 점이 있겠지만.. 기본 골짜는 같을거라는 생각에 시작하게 되었다. 헌데 의외로 세팅할때 슬라이드와 다른 부분이 있어서 혹시나 비슷하게 삽질을 하고 있다면 참고가 되지 않을까 싶어 정리겸 작성하게 되었다.
우선 원글의 슬라이드 영상은 하단으로
그리고 이 영상에 슬라이드는 http://emocon.weirdx.io/2016fw/slides/chiyodad_django-x-heroku.pdf 이곳이다.
이모콘이라는 곳에서 열린 컨퍼런스인데. 2016 F/W에서 발표되었다. (https://github.com/weirdmeetup/emocon/tree/gh-pages/2016fw/slides )
나또한 이 영상을 보고 맥에서 진행 하였으므로 맥이 기준이다.
대략 과정은
- brew 설치 후 python3 , pip3, atom 설치
- heroku 가입
- toolbelt설치
- 프로젝트 폴더 생성. git 초기화(로컬 프로젝트)
- heroku 로그인 및 앱 만들고 연결
- 파이썬 가상환경 (Virtualenv) 설치후 설정 및 활성화
- 가상환경에서 django 설치.. django heroku project template 설치
- django heroku 를 heroku에 deploy - django heroku 로컬 빌드 확인
- DB 초기화 - 슈퍼계정 생성
정도의 간략한 (??) 과정을 거쳐 개발 환경을 구축하고 코딩에 들어간다. 쭉 보니 50분영상에 개발환경 구축이 절반을 넘는다. (대부분의 프레임워크 환경 구축이 그렇듯이........)
이 와중에 2년이나 세월로 인해 바뀐 부분을 삽질한 뒤 기억나는대로(?) 해결 방법을 간단히 적어볼까 한다.
1. 파이썬을 처음 써봐서 그럴수도 있으나.. 파이썬3를 사용하려면 파이썬2가 있어야한다. (의존성)
- 이것은 파이썬 홈페이지에서 OS별로 다운받으면 된다.
2. django heroku project template 설치 실패
- 슬라이드에 작성부분에 약간의 오타가 있다 (master.zip 앞에 공백이 하나 있어서 그렇다)
- (emv)$ django-admin.py startproject --template=https://github.com/heroku/heroku-django-template/archive/master.zip --name=Procfile emocon .
- 직접 공백을 지우기 힘들면 위의 명령어를 복사하면 된다.
3. python manage.py runserver 명령어가 되지 않는다. (로컬 빌드)
- 슬라이드를 그대로 따라하면 다음과 같은 에러가 날것이다.
- ModuleNotFoundError: No module named 'dj_database_url' 라는 에러가 처음에 났었는데
- 간단하게 dj_database_url을 깔아주면 됫는데. 찾아보니 heroku에서 로컬을 테스트하는 명령어가 따로 있었다.
- (emv)$ heroku local
- heroku local로 테스트를 하면 gunicorn과 dj_database_url 와 django_heroku 라는 것이 없다고 에러가 난다.
- (emv)$ pip install gunicorn
- (emv)$ pip install dj_database_url
- (emv)$ pip install django_heroku
이런 형식으로 에러가 난다. (나머지 두개의 의존성은 엄청 긴 에러가 나며 에러코드 1과 에러코드 3을 출력한다)
제대로 빌드가 된다음 다음과 같이 나타난다.
[OKAY] Loaded ENV .env File as KEY=VALUE Format
23:02:40 web.1 | [2018-06-10 23:02:40 +0900] [12351] [INFO] Starting gunicorn 19.8.1
23:02:40 web.1 | [2018-06-10 23:02:40 +0900] [12351] [INFO] Listening at: http://0.0.0.0:5000 (12351)
23:02:40 web.1 | [2018-06-10 23:02:40 +0900] [12351] [INFO] Using worker: sync
23:02:40 web.1 | [2018-06-10 23:02:40 +0900] [12354] [INFO] Booting worker with pid: 12354
23:02:40 web.1 | [2018-06-10 23:02:40 +0900] [12355] [INFO] Booting worker with pid: 12355
'Specifying a namespace in include() without providing an app_name '
django.core.exceptions.ImproperlyConfigured: Specifying a namespace in include() without providing an app_name is not supported. Set the app_name attribute in the included module, or pass a 2-tuple containing the list of patterns and app_name instead.
완성 :
https://ssh-emocon2016.herokuapp.com
참고 출처
http://raccoonyy.github.io/django-2-0-release-note-summary/
https://docs.djangoproject.com/en/2.0/ref/urls/
https://stackoverflow.com/questions/48608894/specifying-a-namespace-in-include-without-providing-an-app-name
'프로그래밍 > Django' 카테고리의 다른 글
[Python] mac에서 python 설치 정리(pyenv) (0) | 2018.12.23 |
---|---|
[django] django 서버 구동, virtualenv(venv) 요약정리 (0) | 2018.06.24 |
[django] django 개발 환경 구축(튜토리얼 참고) (0) | 2018.06.14 |