20191021 TIL - django Endpoint(1)

박경연 (돌진어흥이)·2019년 10월 27일
0

djangoAPI

목록 보기
1/2
post-custom-banner

Wecode에서 개발자가 되기위해 HTML / CSS / Javascript / python등을 배워가며 바쁘게 지낸지 벌써 3주가 지났다.
나는 CSS가 두려운 것이 첫번째, DB와 서버간의 통신 관계를 알고싶은것이 두번째, 그냥 유야무야....가 세번째로 어쨋든 백엔드로 진로를 결정하게 되었다.
그리고 주말부터 django 튜토리얼을 학습하기 시작하여, 이제야 엔드포인트를 만들어보기 시작한다.

  1. 가상환경구성하기 #1 - miniconda3
  • miniconda? : miniconda는 Python과 R 사용자를 위한 오픈소스 패키지 관리툴인 Anaconda의 가벼운 버전이다

  • step1 : wget 혹은 curl을 통해 미니콘다를 다운받아준다

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
chmod -R 755 Miniconda3-latest-Linux-x86_64.sh
./Miniconda3-latest-Linux-x86_64.sh
  • step2 : 설치해준다
$ sudo apt install wget

설치에 성공하면 conda명령어를 사용할 수 있다.
하지만 나의 경우, bash가 아닌 zshell을 깔아서 사용하고 있었기 때문에, PATH까지 설정해주어야 conda를 사용할 수 있었다

  • step3 : 가상환경 생성하기
 conda create -n "가상환경 이름" python=3.7

파이썬 버전명을 지정해주어야 django가 python3에 맞는 버전으로 설치된다. 가상환경명은 되도록이면 프로젝트명과 일치하거나 기록하기 쉽도록하는것이 좋다

  • step4 : 가상환경이 성공적으로 생성되었으면, 활성화 해준다.
    앞으로 설치하게 되는 pip패키지들은 conda에 의해서 해당 환경안에서만 사용이 가능하게된다.
  1. 가상환경에 django설치
  • django? : django는 웹 애플리케이션 프레임워크의 하나로, Model-View-Controller패턴을 따른다.(MVC에 관해서는 추후 포스팅에 설명하겠다.) 그렇다면 프레임워크란 무엇이냐? 구글링 해본 결과로는 이렇다
    "애플리케이션 개발에 바탕이 되는 템플릿과 같은 역할을 하는 클래스들과 인터페이스들의 집합"
    결국 웹 애플리케이션을 만드는데 필요한 각종 기능과 형식을 미리 짜놓고, 이것을 사용자가 자유롭게 활용할 수 있도록 해놓은 것이라고 할 수 있겠다.

  • Install :

pip install Django 
  1. Django 프로젝트 시작하기
  • 자신이 프로젝트를 관리하기를 원하는 디렉토리에서 다음 명령을 실행해준다.
django-admin startproject 프로젝트명
  • 해당 디렉토리의 하위에 프로젝트 명으로 디렉토리가 생성되면 성공한 것이다.
  1. settings.py설정
  • 해당 프로젝트 하위에 있는 프로젝트 루트 디렉토리에는 settings.py라는 파일이 존재한다. 해당 파일은 해당 프로젝트의 기본 설정에 대해서 다루는데, 기본적으로 사용하지 않을 앱이나 기능을 우선 비활성화 시켜준다
ALLOWED_HOSTS = ["*"]
  • 다른 호스트에서 api가 작동하는지 보기 위해 모든 호스트에서의 접속을 허용한다.
INSTALLED_APPS = [
#    'django.contrib.admin',
#    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]
  • django가 기본으로 제공하는 admin, auth를 사용하지 않을 것이기 때문에 주석처리하였다.
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
#    'django.middleware.csrf.CsrfViewMiddleware',
#    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'corsheaders.middleware.CorsMiddleware',
]
  • 인증 인가를 추후에 따로 구현할 것이기에 csrf와 인증용 미들웨어를 주석처리하였다.
  • 우선 초기 세팅은 이정도로하고 다음 포스팅부터는 API를 본격적으로 만들어 보겠다.
profile
Back-end Developer, pursuing to be a steadily improving person.
post-custom-banner

0개의 댓글