Django에서 테이블을 설계하고 데이터베이스에 반영하는 방법에 대해서 설명하시오
장고는 ORM을 통해서 각 앱의 models.py 파일에 모델 클래스와 그 속성에 대해서 정의해주고(필드, 필드타입, 관계) makemigrations
명령어로 데이터베이스에 반영할 부분을 파일로 만들어준 후 migrate
명령어로 실제 데이터베이스에 반영해줍니다.
Django를 통해 CRUD를 구현하는 방법에 대해서 HTTP Method와 함께 설명하시오
장고에서 요청을 처리하는 부분은 views.py 파일입니다. 각각의 클래스 안에 정의된 함수들은 http method명과 동일한 이름을 가지고 실제 해당 http method 요청이 들어올 때 수행됩니다. HTTP Method에는 GET, POST, PUT, DELETE가 있는데 각각 CRUD에 대응되어 이에따라 데이터베이스에 반영됩니다
FBV와 CBV는 각각 무엇이며, 어떤 차이가 있습니까?
모두 뷰를 작성하는 방법으로 함수를 클래스로 구현하는지, 클래스로 구현하는지에 차이가 있습니다.
FBV는 함수기반뷰를 뜻하고 url과 연결되는 함수에서 if문(조건)으로 요청한 http method에 따라서 로직을 구성합니다.
CBV는 클래스기반뷰를 뜻하고 url과 연결되는 클래스 안에서 http method별로 함수를 구분하여 그 안에서 로직을 구성합니다. CBV는 클래스의 장점을 활용하여 장고의 다양한 뷰 모듈을 상속받아서 사용할 수 있어 코드를 더 간결하게 구성할 수 있고 확장 및 재사용이 쉽습니다.
CBV: urls.py에서 Class.as_view()
클래스 매서드를 이용해서 클래스가 view기능을 수행할 수 있도록 한다.
+더 보안 기능이 향상된 알고리즘으로 오버라이드? 해서 사용할 수 있는지 알아보기
hasher에 해싱에 사용할 알고리즘, 반복횟수, 솔트 엔트로피 등의 메타정보가 저장되어있어서 이 정보를 이용해 입력받은 비밀번호를 암호화 후 일치하는지 여부를 통해 로그인을 한다
정보를 일정기간 보관할 경우 삭제 요청시 처리시기를 명시해줘야함
모듈, 함수, 클래스 또는 메소드 정의의 첫 번째 명령문으로 발생하는 문자열 리터럴
docstring은 해당 객체의 doc 특수 속성으로 변환됨
Module 첫번째 줄, 함수 선언 후 내부 바로 아랫줄 또는 클래스 선언 후 내부 바로 아랫줄에 큰따옴표 3개나 작은 따옴표 3개로 작성
#docstring 예시
"""
클래스의 문서화 내용을 입력합니다.
"""
# docstring 확인하는 방법
help(모듈명)
모듈명.__doc__
def solution(babbling):
answer = 0
for i in babbling:
for j in ['aya','ye','woo','ma']:
if j*2 not in i:# 연속해서 같은 발음을 할 수는 없음
i=i.replace(j,' ')
if len(i.strip())==0:
answer +=1
return answer
replace할 때 ''가 아니라 ' '로 하는 이유는 단어 사이를 구분해주기 위해서이다
strip은 양옆의 공백을 모두 제거해준다