grape

Django로 RESTful API 서버 설계하기 (2) 본문

웹 프로그래밍/Django

Django로 RESTful API 서버 설계하기 (2)

grape-story 2021. 5. 13. 22:09

개발환경

window + Python 3.8 + PyCharm

 

 

목표

Django rest framework 튜토리얼 학습

간단한 주소록 구현 

 

 

1. Migrate

현재 서버를 구동시켜 보면 migrate를 실행하라는 문구가 나온다. migrate란 무엇일까 ?

Django 프로젝트는 app단으로 관리를 한다.  프로젝트를 만들게 되면 기본적으로 설치되는 app들이 있다. 

(ex - admin, auyh, contenttypes, sessions) Django framework 라는게 app을 설치하고 나서 어떠한 변경사항이 있으면 

그걸 Django framework에 적용하는 명령어가 있는데 그게 바로 "python manage.py migrate" 명령어 이다. 

즉, 어떠한 변경사항이나 새롭게 app를 추가하게 되면 server의 동작을 내린다음에  migrate 명령어를 입력하면 변경사항들이 framework에 적용된다. 

 

  • 프로젝트를 새로 생성하고 "python manage.py migrate"를 해줘야 admin, auth, .. 등등의 기능들을 사용할 수 있다. 
  • Migrate, Migrations 관련 내용은 추 후 따로 정리할 예정 

"python manage.py migrate" 명령어를 입력해주면 위 사진처럼 기본적으로 설치되는 app 들을 모두 적용시켜준다. 

 

 

2. Run을 통해 서버 실행하기 (설정 안해도 됨)

 

명령어를 입력하지 않고, Run을 통해 서버를 실행 하도록 구성한다. 

Run => Edit Configurations .. 를 클릭 또는 화면 우측 상단 Add Configuration.. 클릭 한다. 

 

+를 클릭한 뒤, Python을 클릭한다. 그 후 Name에 Runserver라고 이름을 작성해주고 Script path에 manage.py 경로를 선택, parameters에 runserver를 입력한 후 OK를 클릭한다. 

 

그럼 Run 부분에 Run 'Runserver'가 생성된 것을 볼 수 있다. 이를 클릭하면, Terminal를 통한 실행과 다르게 Run을 통해서 실행 되는 것을 볼 수 있다. 

 

Run을 통해서 서버가 실행되는 모습 !! 

  • "Watching for file changes with StatReloader" <== 이부분은 파이참을 켜논 상태에서 소스들을 수정을 하고나서 저장을 누르는 순간 서버가 자동으로 재시작이 된다. (장고 자체가 터미널로 띄우든 파이참으로 띄우든 소스를 고치면 그게 자동으로 반영이 되서 서버가 자동으로 내렸다가 올라간다.) 

 

3. 접속 호스트 변경

로컬 환경에서 작업 시 "http://127.0.0.1.:8000/" 도 괜찮은데 나중에 AWS에 올린다던지 내 컴퓨터에서 서버를 띄우고 학교나 회사 컴퓨터, 모바일이나 다른 컴퓨터로 접속할때 접속이 안된다.  왜냐면 설정이 다 막혀 있기 때문이다.

settings.py를 보면 기본적으로 여러가지 서버 세팅이 되어 있는데 ALLOWED_HOSTS 부분에 '*' 로 변경 해 준다. 

'*' <= 이 뜻은 지금 만들고 있는 프로젝트 서버 환경에 아무나 들어올 수 있게 해주는 것 

  • ALLOWED_HOSTS = ['ip주소', 'url 주소'] 
  • ALLOWED_HOSTS = ['*']

 

한가지 더 해줘야 하는 부분이 있다. 현재 runserver 가 개발 모드로 "http://127.0.0.1.:8000/" (로컬 호스트)로 되어 있는데 이 상태로 하게되면 외부에서 접속이 안된다. (내 컴퓨터에서는 접속 가능) 

Run Configrations에 가서 runserver만 있던 부분에서 뒤에 옵션으로 ip주소가 올수 있는데 0.0.0.0:8000을 추가로 설정 해 준다. 

 

설정을 변경한 뒤 서버를 실행하면은 0.0.0.0:8000으로 실행이 된다. 이상태에서는 외부에서 들어올 수 있다.

외부에서 만약 해당 컴퓨터의 IP주소를 알고 있으면은 IP를 통해서 들어올 수 있고 만약 AWS에 올리게 되면 AWS주소로 다른 컴퓨터에서 혹은 모바일에서 접속할 수 있다. 

 

이렇게 하면 Django의 기본 세팅이 완료된 것이다. ! 

 

  • 웹 브라우저에서 접속시 0.0.0.0:8000 이 아니라 기존의 127.0.0.1:8000로 접속 해야 한다. 

 

 

  • 해당 글은 유튜브 mychew__ 님의 채널의 동영상을 보고 학습 및 정리한 글 입니다. 

참고

https://www.youtube.com/watch?v=GDmm4JH4loc&list=PLHQvFs5CMVoTbcg79VvEzwLMUahLZrlmC&index=4 

 

Comments