일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 중복제거
- COMMIT
- queryset
- get_object_or_404
- anaconda3
- Django
- advColumnGrid
- GIT
- Delphi
- c#
- rank
- dbadvgrid
- templates
- python3
- Push
- python 3.7
- Visual Studio
- HTML
- MSSQL
- PyCharm
- github
- TMS
- blog
- pyhcarm
- pythonanywhere
- 백준
- declare
- hackerrank
- 델파이
- delphi 10.3
- Today
- Total
DevHyun
[DevHyun's Blog] Django&Python으로 만든 Blog를 가상환경(pythonanywhere)에서 배포하기! 본문
[DevHyun's Blog] Django&Python으로 만든 Blog를 가상환경(pythonanywhere)에서 배포하기!
D3V3L0P3R 2020. 10. 16. 20:35장고걸스 코치들과 자원봉사자들의 수고로 번역된 글을 참고하였습니다.
1. 가상환경 사이트 선택(pythonanywhere,heroku 등등)
* pythonanywhere 사용!
2. pythonanywhere 가입!
3. github에 DevhyunDjangoBlog Project Commit-Push!
4. pythonanywhere - Console에서 bash로 열기
5. github에 있는 DevhyunDjangoBlog(본인의 repository명) Project 복사하기
* 본인의 github id 입력
$ git clone https://github.com/<user-name>/DevhyunDjangoBlog.git |
6. tree 명령어로 Project가 잘 복사되었는지 확인
* 본인의 프로젝트 명
$ tree DevhyunDjangoBlog |
7. 가상환경 생성하기
* 본인의 프로젝트 명
$ cd DevhyunDjangoBlog $ virtualenv --python=python3.7 myvenv Running virtualenv with interpreter /usr/bin/python3.7 [...] Installing setuptools, pip...done. $ source myvenv/bin/activate (myvenv) $ pip install django~=2.0 Collecting django [...] Successfully installed django-2.0.xx |
8. 데이터 베이스 생성(migrate) 후 superuser생성
(mvenv) $ python manage.py migrate Operations to perform: [...] Applying sessions.0001_initial... OK (mvenv) $ python manage.py createsuperuser ... .. . finish |
9. web app으로 배포
- 배포하기! 에서 인용
tutorial.djangogirls.org/ko/deploy/
로고를 클릭해 PythonAnywhere 대시보드로 와서 Web을 클릭하고 Add a new web app를 선택하세요. 도메인 이름을 확정한 후, 대화창에 수동설정(manual configuration) ("Django"옵션이 아니에요) 을 클릭하세요. 다음, Python 3.6을 선택하고 다음(Next)을 클릭하면 마법사가 종료됩니다. |
10. 가상 환경 설정
빨간색 글자 클릭 후 아래와 같이 입력
* pythonanywhere 유저 명
* 프로젝트 명
/home/<user-name>/<prjoject-name>/myvenv/
11. WSGI 파일 설정 - 빨간 박스 클릭 후 열리는 wsgi 파일에서 내용 전부 삭제 후 아래와 같이 입력
* pythonanywhere 유저 명
* 프로젝트 명
import os import sys path = '/home/<user-name>/<prjoject-name>' if path not in sys.path: sys.path.append(path) os.environ['DJANGO_SETTINGS_MODULE'] = '<prjoject-name>.settings' from django.core.wsgi import get_wsgi_application from django.contrib.staticfiles.handlers import StaticFilesHandler application = StaticFilesHandler(get_wsgi_application()) |
* StaticFilesHandler는 CSS를 다루기 위한 것입니다.
12. save 후 pythonanywhere - web 페이지에서 reload 버튼 클릭 후 생성된 도메인으로 들어가기!
13. 여기서 부터는 내가 겪었던 error 및 해결방법
14. error.log 페이지에서 아래와 같은 에러 발생
* Local에서는 문제없이 Run 되었는데 가상환경에서만 발생하는 오류인듯?
* 가상환경에서만 발생하는 에러이기 때문에 pythonanywhere에 있는 file만 수정했음
* pythonanywhere 자체 편집기 사용( pythonanywhere - file)
14-1. PosixPath
/home/<user-name>/<prjoject-name>/settings.py에서 에러 발생
TypeError: argument of type 'PosixPath' is not iterable Then you have to convert the path to be a string:
BASE_DIR 앞에 str 붙여준 후 해결
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': str(BASE_DIR / 'db.sqlite3'),
}
}
14-2. No such file or directory
/home/<user-name>/<prjoject-name>/setting.py에서 에러 발생
Github에 Project 공유 시 Django SECRET_KEY 를 암호화? 하기 위해서 추가했던 json file를 못찾아서 에러 발생
FileNotFoundError: [Errno 2] No such file or directory: 'secret.json'
문제가 되는 구문인 open('secret.json')을 가상환경의 절대경로를 붙여준 후 해결
with open("/home/devhyun/DevhyunDjangoBlog/secret.json","r") as f:
secrets = json.loads(f.read())
def get_secret(setting, secrets=secrets):
try :
return secrets[setting]
except KeyError :
error_msg = f"set the {setting} enviroment variable"
raise ImproperlyConfigured(error_msg)
14-3. Invalid ALLOWED_HOSTS
/home/<user-name>/<prjoject-name>/settings.py의 마지막 줄에
ALLOWED_HOSTS = ['localhost', '127.0.0.1', '[::1]', '.pythonanywhere.com'] 를 추가 한 뒤에 다시 Web 탭에서 Reload!
* [::1] 은 IPv6에서의 localhost를 의미한다
'Web > Django&Python Blog Projecct' 카테고리의 다른 글
[DevHyun's Blog] Pythonanywhere 에서 Git Project Pull 한 후 재배포 하기 (0) | 2020.10.19 |
---|---|
[DevHyun's Blog] Django ORM과 QuerySet 그리고 동적데이터 활용 (0) | 2020.10.19 |
[DevHyun's Blog] django 에서 첫 URL 생성 후 view 와 Template만들기! (0) | 2020.10.16 |
[DevHyun's Blog] Django&Python으로 Blog 만들기 - Blog의 관리자 페이지 (0) | 2020.10.16 |
[DevHyun's Blog] Django&Python으로 Blog 만들기 - Blog의 게시글 Model 만들기 (0) | 2020.10.16 |