Django Repl.it Guide(1)

노광오·2020년 6월 13일
0

Django

목록 보기
3/7

장고 엔드 포인트 체험판 시작

위의 구조가 현재 장고 엔드포인트 체험판 파일 구조 이다.
근데 엔드포인트가 뭔지 잘 모르겠어서 찾아봤다.

엔드포인트

  • IT적 관점에서 쉽게 말해서, 어떠한 소프트웨어나 제품에 최종목적지인 사용자를 가리킴
    ex) PC, 노트북, 핸드폰 등 유저가 사용하는 devices
    ex) 기업 네트워크에서는 사용자들이 접속하는 파일 서버나 웹 서버등의 서버 시스템

django의 엔드포인트와 IT적 엔드포인트의 의미가 같은지는 잘 모르겠다.

main 디렉토리 내부 파일들은 다음과 같이 설명 할 수 있다.

  • 'views.py'는 파일이름을 봤을 때는 화면에 대한 파일이라고 생각하실 수 있지만, 이 파일은 로직을 담당하는 파일입니다. 앞으로 여러분이 장고프로젝트를 진행하면서 제일 많이 다루게될 파일 입니다.

  • 'migrations 디렉토리'models.py파일에 정의한 테이블 구조를 manage.py의 makemigrations 옵션을 통해 생성되는 파일이 저장되는 디렉토리 입니다.

  • makemigrations : models.py에서 적용한 변경사항이나 추가된 혹은 삭제된 사항들을 감지하여 파일로 생성
  • migrate : 적용되지 않은 migrations들을(설정값들을) 적용시키는 역할

즉, makimigrations는 장고에서 제공하는 모델의 변경사항들을 감지하고 기록하는 역할을 하며
migrate는 그러한 기록된 파일들과 설정값들을 읽어서 그 변경사항을 db에 저장하는 역할을 한다.

  • 'models.py'는 바로 장고의 핵심 기능중 하나인 ORM과 관련되어 있는 파일입니다. 단순하게는 데이터베이스의 테이블을 정의하는 파일이라고 생각하시면 좋습니다. 장고 ORM은 뒤에 설명이 있으니, 지금은 이정도로 정리하도록 하겠습니다.

  • 'settings.py' 파일은 이름대로 프로젝트 관련 모든 설정 정보를 담고 있는 파일입니다.

  • 'urls.py' 파일은 이름대로 url 경로에 대한 부분입니다. 이부분은 아직 잘 이해가 되지 않으실 수 있지만, 괜찮습니다.

    네이버를 예로 들어보겠습니다. 네이버에는 다양한 서비스가 존재합니다.

    그 중 여러분의 이해를 돕기 쉬운 서비스인 blog.naver.com 을 예로 들겠습니다.

    blog.naver.com에서 특정 사용자의 주소 wecode를 표시하려면 어떻게 할까요?

    바로 blog.naver.com/wecode 입니다.

    이것이 바로 경로 입니다.

    url에서 특정 사용자의 블로그를 향하기 위해 지정된 사용자 명으로 가기 위해 설정하는 것이죠.

    이러한 일을 하는 것이 바로 'urls.py' 파일 입니다.

    여러분 위코드 블로그 많이 사랑해주세요~!

view.py

JSON은 데이터 타입으로 JavaScript Object Notaion의 줄임말로 인터넷에서 자료를 주고 받을때 널리쓰이는 데이터 탑입으로 자리잡은 형식이다.

import json

json데이터를 처리하기 위해 import했다.

from django.views improt View

이것은 장고 프레임워크에 내장된 클래스를 여기에서 사용하기위해 상속받아 온것이다.

django.http import JsonResponse

JsonResponses는 서버의 요청에 대한 응답을 json으로 응답하기 위해 import 해 온것이다.

def get 함수는 우리가 기술했지만, View 클래스에 내장된 메소드입니다.
이름에서 보여주듯이 이 함수는 HTTP 통신 메소드 중 GET 메소드로 오는 호출에만 응답하게 되어 있습니다.

그렇다면 GET메소드는 어떻게 받을까요?

답은 바로 urls.py에 있습니다.

urls.py

from django.urls import path

장고에서 Url 경로를 처리하기 위한 모듈을 임포트 하는 코드 입니다.

from .views improt MainView

작성해 놓은 views 파일 안에 있는 MainView 클래스를 임포트 하는 코드 입니다.

urlpatterns = [ path('' , MainView.as_view())]

장고에서 경로를 명시할때 항상 'urlpatterns' 와 같은 리스트 안에 경로를 저장하고 읽어 들입니다.

urlpatterns 안에 존재하는 코드를 읽어보면, ' ' 일때 MainView.as_view() 즉 MainView라는 클래스에 내장된 as_view() 함수를 실행합니다.

그럼 as_view() 메소드는 현재 주소인 나를 호출하면 그 호출을 한 http 메소드가 GET인지 POST인지 DELETE인지 PUT인지 등을 판별해서 그에 맞는 함수를 실행시켜줍니다.

0개의 댓글