티스토리 뷰
이제부터 시작해볼 프로젝트는 제가 파이썬 토이프로젝트를 시작한 이유입니다. 소개가 거창하네요...
파이썬으로 작성된 백엔드 프레임워크인 Django에 대하여 다루어보겠습니다!! 첫 내용은 당연히 개발환경 구축이겠죠!
사실 백엔드 프레임워크라고 해서 새로 배울 언어가 따로 있는것은 아니고요 Django 라는 잘 짜여진 프레임워크의 소스와 라이브러리내의 함수를 이용하여 웹프로그래밍의 전반적인 틀을 만들어주는것입니다.
이번 포스팅에서 해볼것은 로컬호스트를 통해 html 파일내에 <h1>태그로 선언된 helloworld 문구를 웹 브라우저에 띄우는것입니다.
그럼 시작해 보겠습니다.
1. 우분투 리눅스에 가상환경 설정해주기
-pip install virtualenvwrapper
몇가지 가상환경 라이브러리가 있지만 위의 virtualenvwrapper 가 제 체감상 가장 유용했습니다. venv도 사용해 보았는데 사용할때마다 패키지가 설치된 디렉터리내의 bin 디렉터리 내의 소스코드를 실행해주는것이 번거롭더라구요...그래서 위의 라이브러리 설치후 아래와 같이 쉘 환경설정파일 편집후에는 아주 유용했습니다.
(저는 모질라 개발자 네트워크(MDN)의 내용을 참고했습니다)
-. bashrc 파일 편집
홈디렉터리에 숨김파일로 있을것입니다. 배시쉘이 수행될때 함수관련 설정파일인데요 이 파일에 아래와 같은 내용을 추가해줍니다.
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS=' -p /usr/bin/python3 '
export PROJECT_HOME=$HOME/Devel
source /usr/local/bin/virtualenvwrapper.sh
위와 같이 설정해주어야 가상환경에서 파이썬을 사용할때 문제가 없습니다. 수행path가 담긴 라이브러리를 직접 언급해준 효과입니다. 만약 파이썬 설치 경로가 다를시 which python3 명령을 사용하여 경로를 확인할수 있습니다.
-source ~/.bashrc
위와 같이 설정해준 파일을 실행해 줌으로 스크립트의 내용이 반영될수 있게 해줍니다.
그러면 가상환경이 설정된 것입니다.
(명령어)
새로운 가상환경을 생성하고 싶다면 mkvirtualenv 환경이름
가상환경 목록을 보고싶다면 workon
가상환경에 들어가고 싶다면 workon 환경이름
가상환경에서 빠져나오고싶다면 deactivate
가상환경을 지우고 싶다면 rmvirtualenv 환경이름
Django 라는 이름으로 가상환경을 만들고 가상환경으로 들어간 결과는 다음과 같습니다.
위처럼 프롬프트 앞에 (환경이름) 이 나타난것을 확인한다면 성공적입니다.
2. 장고 라이브러리 설치
-pip install Django
여기서 중요한것은 장고라이브러리를 가상환경 내에서 설치해주세용 가상환경에서 해야 다른 라이브러리와 충돌이 없어 매끄러운 프레임워크 사용이 가능합니당!
장고 라이브러리를 설치했다면
-django-admin startproject 프로젝트이름
프로젝트를 만들어 주세용! 그리고
-django-admin startapp 앱이름(Ex home)
그래고 앱을 만들어 주세요!
이렇게 두개의 명령어를 실행하고 몇가지 설정을 완료해준 디렉터리 구조는 다음과 같습니다. 일단 전체적인 느낌만 봐주세요! (apt-get 명령을 통한 tree 패키지 설치도 권장드립니다!)
자 먼가 느낌이 올것입니다. 프레임워크가 뭘까...? 저도 처음에는 개념이 잘 서지 않았는데 위의 디렉터리 구조를 통해 조금은 알게 되었습니다. home 이라는 디렉터리는 startapp 명령을통해 생성된 디렉터리며 web1 디렉터리는 여러가지 설정 파일이 들어가 있는 디렉터리입니다.
제가 짧지만 지금까지 공부한 내용으로 느낀 프레임워크는 일종의 형식을 제시해주는것 같습니다. 중구난방으로 만들수 있는 파일들을 비슷한 속성끼리 디렉터리 내에 포함시키고 그들을 유기적으로 엮어주는 틀을 제시해주는 것이 프레임워크인것 같습니다.
그럼 이제 몇가지 설정을 진행해보겠습니다.
제일먼저 눈에 보이는파일을 만들어 보죠 제 기준으로 home 디렉터리내에 templates 라는 하위 디렉터리를 생성했습니다. 그리고 index.html 이라는 파일을 만들어주고 그내용은 다음과 같습니다.
위의 html 언어 태그가 생소하다면 html 카테고리의 포스팅을 참고 해주세요!
다음은 home 디렉터리의 views.py 파일을 다음과 같이 편집해주세요
위와 같이 django 디렉터리의 render 패키지를 import 하여 render라는 함수를 사용합니다.
render 영단어 뜻이 ~상태로 만들다, 제출하다 이런의미이니 request(요청) 이라는 인자를 받아들여 index.html 파일을 제출한다는 의미로 함수를 해석하면 얼추 말이 되겠죠?
어쨋든 뷰 파일에 저렇게 함수를 정의 해둔후 web1 디렉터리의 urls.py 파일을 아래와 같이 편집해줍니다.
코드를 해석해보면 방금 편집한 views 파일을 improt 해줍니다. 그후 환경변수로 views 파일내의 index 함수를 포함시켜준다 입니다.
마지막으로 동일 디렉터리 내의 settings.py 파일을 아래와 같이 편집해줍니다.
이렇게 해주면 모든 준비는 끝났습니당
가장 상위 디렉터리의 manage.py 의 함수를 실행해 로컬 호스트로 서버를 열어주는 작업 만 거친다면 해당 아이피를 통해 브라우져로 결과를 확인할수 있습니다.
명령어 ./manage.py runserver 포트번호
위와 같이 성공적으로 결과를 볼수 있게 되었습니다. 이제 html과 자바스크립트 그리고 DB를 연동해서 여러가지 웹 어플리케이션을 만들어 볼수 있게 되었습니다 ㅎㅎ
'Language > Python3' 카테고리의 다른 글
Python3 - 장고 mysql 연동 (0) | 2021.06.23 |
---|---|
Python3 - Todolist (GUI), use Database (1) | 2021.05.15 |
Python3 - todolist(text) demo (0) | 2021.05.14 |
Python3 - Todolist (test mode), use Database (0) | 2021.05.14 |
Python3 - Music playList (0) | 2021.05.12 |