추석 연휴가 끝나가던 중 시험공부는 하기 싫고 마땅히 할게 없어서
찾아보던 중 카카오톡 플러스친구에서 API를 제공한다는 걸 알았다.
그래서 요즘 흔하게 찾아볼 수 있는 식단알림봇을 만들기로 했다.
백엔드는 PHP가 편하고 익숙하지만 공부도 해볼 겸 Django를 사용하기로 했다.
만드는데 사용한 것들은 아래가 전부이다.
장고(Django) / MySQL / Python3
실제 개발하는 모든 내용을 이 포스팅에 담을 생각이므로 중간중간에
이해가 간다고 생각하는 부분은 넘어가도 좋다.
1. Django 사용을 위한 Virutual Environment 구축
먼저 장고를 사용하기 위해 pyenv를 설치할 것이다. (서버 환경은 우분투이다)
다음과 같은 명령어를 사용한다.
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python3-pip
다음으로 python3에 기본적으로 내장된 venv를 이용하여 가상환경을 사용할 것이다.
python3 -m venv를 입력했을 때
위와 같이 뜬다면 정상적으로 설치되어 있는 것이다.
(없다고 나온다면 sudo apt-get install python3-venv를 통해 설치)
기본적으로 별다른 설정이 없다면 Django에서는 데이터베이스로 sqlite3를 사용한다.
하지만 나는 MySQL이 더 익숙하므로 MySQL을 사용하겠다.
아래의 명령어로 설치한다.
sudo apt-get install mysql-server
먼저 virtualenv로 가상환경을 구축한다.
python3 -m venv env_원하는이름
잠시 멈칫한 후 ls를 입력해보면 지정한 이름으로 디렉토리가 하나 생성되어 있을 것이다.
(나는 env_cnu로 만들었다)
source env_cnu/bin/activate 를 입력하면 쉘 프롬프트 제일 앞에 (env_cnu) 라는 명칭이 생긴다.
이것이 생기면 정상적으로 가상환경에 진입했다는 뜻이다. (가상환경에서 빠져나오려면 deactivate 입력)
다음 명령어를 통해 가상환경에 Django를 설치한다.
pip install django
설치를 완료했으면 django-admin을 통해 프로젝트를 생성한다.
django-admin startproject 원하는이름
(나는 project_cnu로 함)
위 명령어를 입력하면 지정한 이름으로 폴더가 하나 생성된다.
다음으로 파이썬에서 MySQL을 사용하기 위한 라이브러리를 설치한다.
pip install pymysql
설치를 완료했으면 방금 생성한 프로젝트 디렉토리로 이동한 후 settings.py를 수정해야한다.
http://hides.kr/689 를 참고하여 수정한다.
MySQL과 연동을 완료했으면 이제 app을 생성해야한다.
보통 Django에서는 프로젝트를 만들고 프로젝트 하위에 각 기능별로 app을 두어 관리한다.
python manage.py startapp 원하는이름
(나는 kakao로 함)
이렇게 하면 지정한 이름으로 디렉토리가 생성된다.
다음으로 프로젝트 디렉토리로 이동하여 settings.py를 연다.
그리고 INSTALLED_APPS에 들어가서 맨 마지막줄에 방금 생성한 app의 이름을 추가해준다.
다음으로 같은 디렉토리(프로젝트 디렉토리)에 있는 urls.py를 연다.
첫번째 네모박스는 내가 생성한 app(kakao)의 views에서 message와 keyboard를 import하겠다는 뜻이다.
from app이름.views import message, keyboard로 입력하면 된다.
두번째 네모박스는 keyboard, message 형태의 URL입력 시 어디로 라우팅시키는지에 대한 내용이다.
(자세한 내용은 설명하지 않겠다. https://github.com/plusfriend/auto_reply 참고)
수정을 완료했으면 app 디렉토리로 이동한 후 urls.py 파일을 생성한다.
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^keyboard/$', views.keyboard),
url(r'^$', views.message),
]
그리고 위와 같은 내용으로 채워넣고 저장한다.
----내용 추가중----
'Coding > Python' 카테고리의 다른 글
파이썬으로 제작한 페이스북 댓글 추첨 프로그램(Graph API) (6) | 2017.10.29 |
---|---|
장고(Django) nohup으로 백그라운드에서 실행시키는법 (0) | 2017.10.08 |
장고(Django) csrf token 무시하는법 (0) | 2017.10.08 |
장고(Django) You may need to add to ALLOWED_HOSTS 오류해결 (0) | 2017.10.08 |
장고(Django) pymysql 이용해서 MySQL 연동하기 (0) | 2017.10.07 |