View 분석

sihwan_e·2020년 5월 20일
0

Django

목록 보기
8/21

View

View는 필요한 데이타를 모델 (혹은 외부)에서 가져와서 적절히 가공하여 웹 페이지 결과를 만들도록 컨트롤하는 역활을 한다

1.import

import를 알기전에 module이란 변수나 함수 그리고 클래스 등을 모아놓은 파일이다. 따로 모듈로 모아놓은 이유는 무엇일까.

그 답은 이러하다.
다른 파일에서 재사용이 가능하게 하고 , 전체 코드가 한 파일에 넣기에는 너무 커졌을때 여러 파일로 나누어서 정리를 하기 위해서다. 즉, 편리함을 위해서다.

모듈의 구성은 단순히 파일을 만들고 그 안에 재사용 하고 싶은 함수나 클래스 혹은 변수를 구현하고, 다른 파일에서 불러와 사용하면 된다.

모듈을 불러와 (import)사용하기 위해서는 import라는 키워드를 사용하면 된다.

import <모듈 이름>   

원하는 모듈을 import키워드로 불러오면 파이썬은 모듈을 해당 파일과 연결 시키게 된다. 그후 연결된 모듈에서 원하는 변수나 함수, 클래스를 사용하면 된다.
다만, 해당 모듈이름과 연겨랳서 호출을 해줘야 파이썬이 어느 파일에서 해당 변수/함수/클래스를 찾을 수 있는지 알 수 있게된다.

2.from import

from <모듈 이름> import <함수/변수/클래스1>, <함수/변수/클래스2>, ..., <함수/변수/클래스N>

from import 키워드를 사용하여 모듈을 불러들이는 경우 모듈이름을 붙이지 않고 곧바로 원하는 함수나 변수 그리고 클래스를 호출할 수 있다.
모듈에서 사용하는 것이 명활 할때 from import를 사용하면 편리하다.

별표 ( * ) 를 사용하면 해당 모듈의 모든 요소가 곧 바로 import 된다.

from my_module import *

print(my_module_var)
my_module_func()

그걸 토대로 본다면

import json          #외부 모듈 json, bcrypt, jwt을 가져와서(import) 사용하겠다고 명시.
import bcrypt
import jwt

from westagram.settings import SECRET_KEY
from .models import Account
#westagram.settings.py에서 SECRET_KEY를 가져와 쓰겠다. (??)
#models.py로 부터 Account클래스를 가져와 쓰겠다.(??)
from django.views import View
from django.http import JsonResponse, HttpResponse
#django의 views로부터 View, http로부터 JsonResponse, HttpResponse 클래스를 가져와쓰겠다.

(??)
from westagram.settings import SECRET_KEY

#westagram.settings.py에서 SECRET_KEY를 가져와 쓰겠다.

SECRET_KEY
링크텍스트(생활코딩설명링크)

1.django.contrib.sessions.backends.cache 이외의 session backend를 사용하고 있거나,
기본 get_session_auth_hash()를 사용하는 모든 sessions
2.CookieStorage 혹은 FallbackStorage 를 사용하는 모든 messages
3.모든 PasswordResetView
4.다른 키가 제공되지 않는 암호화 서명 사용 시 사용된다.

이 키는 Django 내에서 로그인과 같은 세션을 유지하고, 비밀번호 생성, 쿠키, 암호화 서명 등에 사용된다. 이 키 값을 공격자가 탈취하면 서비스의 암호화된 로직이나 데이터에 접근할 가능성을 크게 열어준다. 그러므로 이 키를 소스제어에 포함시키거나 커밋시키지 않도록 한다.

(??)
from .models import Account

#models.py로 부터 Account클래스를 가져와 쓰겠다.(??)
상대경로는 루트 디렉토리를 포함하지 않는 주소를 갖는 경로를 일컫는다.
현재 참조하고 있는 문서가 항상 기준이며, 이문서를 통해 상위폴더와 하위폴더 또는 현재 폴더를 연결한다.
상대경로는 서버 주소가 달라지더라도 이전 서버에서의 디렉토리 구조만 같다면 경로를 수정하지 않아도 된다. 현재 문서를 기준으로 경로를 연결하고 있기 때문에, 루트 디렉토리에서는 사용하지 않는다.

절대경로는 어디에서나 해당 파일을 찾을 수 있다는 장점이 있다. 하지만 서버 내부에서 처리되는 것이 아니고, DNS조회를 통해 해당 파일을 찾기 때문에 상대경로에 비해 처리속도가 느릴수 있다.

내부의 파일을 불러올때>>상대경로
외부의 파일을 불러올때>>절대경로

profile
Sometimes you gotta run before you can walk.

0개의 댓글