http://conansjh20.pythonanywhere.com/lottopage/

 

로또 당첨번호 확인

로또 당첨 번호 확인

conansjh20.pythonanywhere.com

위의 홈페이지를 만들기 위한 모든 과정을 하나하나 포스팅 하도록 하겠습니다.

파이썬을 통하여 멋진 프로그램을 만들었다고 할 지라도 실제 일반인들이 쉽게 접근하여 사용할 수 있는지 여부는 큰 차이입니다. 내가 만든 프로그램을 배포하고 다른 사람들에게 경험하게 하고 또한 피드백을 받는다는 것은 큰 의미를 갖고 또 큰 즐거움일 것입니다. 물론 혼자서 끊임없이 정진하는 것 역시 즐거운 일이고 중요하지만요.

 

일단 시작하기 전에 도움을 얻은 두개 홈페이지를 소개합니다.

 

https://blog.naver.com/rbdud96/221747257363

 

장고 설치하고 초기 설정하기

현재 python 3.6버전 정도가 적당하고 3.7까지가면 충돌나고 오류가 나는 부분들이 있으므로 참고하길 바란...

blog.naver.com

https://blog.naver.com/pjok1122/221607377401

 

[Python / Django] pythonanywhere 배포하기(웹 호스팅)

1. 배포를 위한 설정​Setting.py에서 다음을 수정하셔야 합니다.​(1) DEBUG처음에는 DEBUG &#...

blog.naver.com

내가 만든 파이썬 프로그램을 인터넷이라는 공간에서 '웹앱' 형태로 배포하기 위해서는 django 모듈을 사용합니다. 그리고 제목에서 추측할 수 있듯이 pythonanywhere라는 웹호스팅 업체를 통하여 다른 어떠한 호스팅 서비스보다 손쉽게 파이썬 프로그램을 설치하여 구동할 수 있습니다. 이를 위하여 거의 대부분의 내용을 위의 두 홈페이지를 통하여 알게 되었고 django의 경우에는 국문으로 된 친절한 공홈도 있지만 위 첫번째 블로그가 훨씬 더 쉽고 잘 설명되어 있습니다.

사실 위의 블로그만으로 충분히 할 수 있지만 참고할 자료는 많을수록 좋으니 다시 한번 하나하나 정리하고자 합니다.

 

1. django에 대한 이해를 합니다.

 

django에 대한 flow

구글 검색창에 django flow로 이미지검색을 하면 정말 수많은 flow chart들이 나오지만 처음부터 이해도 잘 안되는 복잡한 챠트들을 보고 있자면 그저 거부감만 들 뿐인데 처음 배우는 이들이게는 위의 flow chart 정도만 알아도 충분할듯 합니다. (저 역시 위의 flow 이상으로는 잘 알지 못합니다.ㅎㅎ)

 

아마 일반적인 가장 단순한 구조의 홈페이지는 You 아래 Browser가 있고 그 아래 html 들과 html 아래에 html의 속성이나 특별한 기능을 제어하는 css나 java script정도가 있겠지요.

 

일단 제가 이해하는 방식대로 아주 쉽게 각각의 요소를 풀이하자면,

 

  • urls : urls.py로 파이썬 파일입니다. 위의 chart에는 없지만 일단 내가 내 컴퓨터 안의 가상 공간이나 웹호스팅 업체를 통해서 받은 내 공간에 django를 이용하여 서버를 설치한 이후 사용자가 내 웹앱에 접속하면 처음으로 wsgi.py 란 파일에 접근합니다. (wsgi는 web server gateway interface의 약자로 gateway가 있는걸 보니 역시 처음 관문 정도가 되겠는데 사실 위의 flow에도 나 와있지 않듯이 그리 중요하거나 자동으로 만들어진 후 거의 건드릴 필요가 없는 파일입니다.) 그리고 urls.py로 넘어가는데 이곳에서 내가 실행시킬 파이썬 프로그램들(각각의 파이썬 함수(메쏘드))에 접근할 수 있도록 미리 경로(path)를 지정해 주는 작업을 합니다.
  • views : views.py로 파이썬 파일입니다. 여러 함수로 이루어져 있으며 내가 하나의 웹앱(홈페이지)를 만든다면 이를 전체적으로 제어하는 핵심적인 부분입니다. 일반적인 웹이라면 각각의 웹페이지들을 html 파일들을 웹브라우져가 직접 실행하지만 django를 이용한 웹 프레임워크의 경우 views안에 있는 각각의 함수들을 실행시키고 그 함수 안에 html을 실행시켜 웹페이지를 연다고 볼 수 있습니다.
  • templates : views.py 안에서 실행시키는데 필요한 것들 즉, html파일들 입니다. 사실 이번에 만드는 홈페이지는 여기까지만 사용하고 다음의 models나 database는 사용하지 않습니다.ㅎ
  • models : models.py로 파이썬 파일입니다. django를 이용하여 만든 웹앱 중 가장 유명하다고 할 수 있는 인스타그램도 결국 각 유져들의 수많은 사진과 글을 담은 게시판입니다. 이러한 게시글을 하나 올릴때 들어가는 정보들의 기준을 정리한 조건 파일이라 볼 수 있습니다.
  • database : models에서 정한 기준들에 맞게 data를 입력 후 data가 저장되는 곳입니다. 이부분은 sqlite3, MySql등으 프로그램을 통하여 저장되는데 각 값들은 파이썬의 튜플{ key : value }로 쉽게 관리할 수 있습니다.

사실 개인적으로도 위와 같은 개념정리는 잘 머리에 들어오지도 않기 때문에 안읽어도 됩니다만 제가 위의 개념 없이 무작정 따라하는데 어려움을 느끼고 시행착오를 거쳐서 제 스스로 다시 한번 개념을 잡기 위해 정리해 보았습니다.

그리고 위의 flow에는 안나왔지만 manage.py 와 settings.py 라는 필수적인 파일이 있습니다.

  • manage.py : 명령 프롬프트 창에서 django관련 명령어를 입력할 경우 manage.py 파일을 이용하여 웹앱을 만들거나 서버를 구동합니다.
  • settings.py : 파일명에서 알 수 있듯이 환경설정입니다.

2. pythonanywhere 이용하기

 

일단 django를 통하여 내가 만든 파이썬 프로그램을 서버 안에 넣고 웹앱을 돌리는 방법은 내 컴퓨터의 하드디스크안에 서버를 구성해서 돌리는 방법과 직접 웹호스팅 업체의 서버공간을 받아 거기에 서버를 구성하는 방법이 있는데 pythonanywhere 서비스는 가입후 할당받은 공간에 제 컴퓨터 안에 구성한 서버를 통채로 그대로 업로드해서 몇가지 설정만 건드려주면 훌륭하게 작동합니다. 

 

pythonanywhere의 경우 기본적으로 무료 서비스를 몇달간 제공하지만 참고로 웹크롤링 프로그램을 만들 경우에는 유료 계정이 필요합니다. pythonanywhere에서 제공한 공간에 웹앱을 설치하여 웹크롤링 프로그램을 구동한다면 pythonanywhere에서 할당한 ip로 내가 크롤링하고자 하는 웹에 접근하게 되는데 무료계정에서는 저작권 문제때문인지 크롤링에 글자수 제한을 두어 거의 불가한 것이나 다름 없습니다. 결국 가장 싼 유료계정을 결제 하였습니다.

 

가장 싼 월 5달러 계정부터 웹크롤링을 이용할 수 있습니다. (해커 계정이 의미심장하군요... 웹 크롤링도 일종의 해킹이니...)

저는 예전에 이베이 해외직구 할때 이용했던 페이팔 계정을 되살려 큰맘먹고 유료계정을 구입하였습니다. 한달에 5달러면 정말 값싼 취미지요...

 

이번 포스트에서 가장 중요한 내용은 pythonanywhere는 django 웹앱을 실행시키기 위한 가장 싸고 편한 서비스이고 웹크롤링을 하기 위해선 유료계정이 필요하다... 입니다.

+ Recent posts