본문 바로가기

관리하지않음/라즈베리파이

라즈베리파이 웹서버 - Django 설치 및 외부접속 설정

라즈베리파이4 + 터치스크린

라즈베리파이4와 공식 7인치 터치스크린을 가지고 있습니다.

공모전에 출품할 프로토타입 제작을 위해서 Django 웹서버를 설치했습니다.

 

1. 파이썬 버전 확인

최신 라즈비안OS라면 파이썬2, 3이 둘 다 설치되어있습니다.

터미널에서 다음 명령어를 실행하면 버전 확인이 가능합니다.

// python2 version check
python --version

// python3 version check
python3 --version

 

 

저는 2.7.16과 3.7.3버전이 깔려있습니다.

 

라즈베리파이 캡쳐 - 파이썬 버전 확인

2. Django 설치

저는 Python3 버전 Django(장고)를 사용할 생각이라서, python3 버전으로 깔아줬습니다.

sudo apt-get update
pip3 install django

Django 설치는 명령어 한줄로 가능해서 간단했습니다.

 

라즈베리파이 캡쳐 - 장고 버전 확인

제가 설치한 장고 버전은 3.1.2 였습니다.

그리고 startproject 명령어로 프로젝트를 생성하려고 했는데,

django-admin startproject mysite // 안됨
django-admin.py startproject mysite // 안됨

django-admin, django-admin.py 명령어 둘 다 먹질 않았습니다.

 

라즈베리파이 캡쳐 - django-admin: command not found

 

구글링 하면 대부분 위 두개의 명령어로 포스팅을 해놔서 당황하다가, stackoverflow에서 구세주를 발견했습니다.

Command not found : django-admin.py

python3 -m django startproject mysite

이 명령어는 먹혀서 mysite 프로젝트를 생성할 수 있었습니다.

 

3. 서버 실행

생성한 mysite 서버를 실행시켜봤습니다.

cd mysite
python3 manage.py runserver

라즈베리파이 캡쳐 - 장고 실행

 

라즈베리파이에 기본으로 깔려있는 웹 브라우저에서 127.0.0.1:8000에 접속하면,

아래와 같이 Django 서버가 잘 동작하는 것을 확인할 수 있습니다.

 

라즈베리파이 캡쳐 - 장고 실행 확인

4. 외부 접속

프로토타입 제작을 위해서 같은 와이파이, 즉 같은 IP에 접속되어 있는 노트북에서 Django 서버에 접속할 수 있도록 만들어야 했습니다. mysite/settings.py를 수정하고 runserver를 할 때 IP를 지정해줬습니다.

 

먼저 아래 명령어로 라즈베리파이가 할당받은 내부 IP를 확인합니다.

hostname -I

라즈베리파이 캡쳐 - hostname

 

제 라즈베리파이가 할당받은 주소는 172.30.1.55 입니다.

이 주소를 mysite/settings.py 내의 ALLOWED_HOSTS 내에 적어줍니다.

ALLOWED_HOSTS = ['172.30.1.55']

 

라즈베리파이 캡쳐 - mysite/settings.py 28 번째 ALLOWED_HOSTS 수정

그리고 다음 명령어로 서버를 실행합니다.

python3 manage.py runserver 172.30.1.55:8000

같은 IP를 사용하고 있는 제 노트북에서 크롬 브라우저를 켜고 172.30.1.55:8000에 접속했을 때,

라즈베리파이에 설치된 Django에 접속

잘 접속되는 걸 확인했습니다.

 

아예 다른 IP를 사용하는데 접속하고 싶다면 포트포워딩을 해야하는데, 저는 프로토타입만 제작하면 돼서 여기까지 세팅했습니다. 이제 REST API 구현하고, 센서 데이터 저장하는 것만 구현하면 되는데,,;ㅅ; 갈길이 태산이네요


잘못된 내용이 있다면 언제든지 댓글이나 메일로 알려주시면 감사하겠습니다.

이 포스팅이 도움이 되었다면 공감 부탁드립니다.

궁금한 점은 언제든지 댓글 남겨주시면 답변해드리겠습니다:D